指针?什么是指针?

指针(pointer)是一个值为内存地址的变量(或数据对象)。

接下来从变量的角度分析:

变量有两个属性,一个是地址,一个是值。

指针与普通变量的不同之处在于:指针变量的值是一个内存地址。

变量有两个属性:那么获取这两个属性的方式就是使用以下两种运算符

取址运算符 &

后跟一个变量名,&给出该变量的地址;

间接运算符 *

后跟一个指针名或地址时,*给出储存在指针指向地址上的值;

指针的意义何在?

指针提供一种以符号形式使用地址的方法。

因为计算机硬件指令非常依赖地址。

指针在某种程度上把程序员要传达的指令以更接近机器的方式表达。

指针使程序更有效率。

尤其是指针能有效处理数组。数组表示法实际上是变相使用指针。

大概有哪方面的知识点:

1、指针和数组、多维数组、数组指针、

2、指针和函数、函数间的通信、函数指针、

3、指针作为形参

4、指针操作

5、指针数组

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

什么是变量?什么是数据对象?什么是内存地址?什么是值?

计算机中有内存,内存用于存储程序中的数据。

内存实际上就是一个块可供CPU访问的存储区域,存储空间。

访问内存,要知道访问哪一块区域,于是就要有内存地址来描述内存特定的储存空间。

存储空间存储单元是一个字节。用内存地址来描述每个字节的存储空间。

存储单元存的数据就是

C语言提供了不同的模型和存储类别,在内存中储存数据。

被内存存储的每一个值都占用一定的物理内存,C语言这样一块内存称为对象。或者叫数据对象。

注意这根面向对象编程中的类对象不是一个概念。

程序需要一种方法访问对象---->声明变量,变量用标识符表示,这样软件就可以通过标识符来指定物理内存中的对象了。

变量标识符(变量名)是内存对象的一种访问途径。

当然途径不止这一种,还有一种途径就是指针

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

函数指针:

函数指针是指向函数的指针变量。是一个指针,指向一个函数。

因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。

这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。

如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。

有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。

函数指针有两个用途:调用函数和做函数的参数。

int func(int x);  //声明一个函数

int (* f)(int x);  //声明一个函数指针,包含了要指向的函数原型信息;int是返回值, 圆括号内的int x是形参参数信息;

于是就有如下操作:

f=func; /* 将func函数的首地址赋给指针f */

f = &func; //或者这么赋值给指针

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

待补充。。。。。。

C语言之对指针概念的初步探究的更多相关文章

  1. C语言学习笔记--指针概念

    指针也是一种变量,占有内存空间,用来保存内存地址,在32位系统中指针的占用的内存大小为4个字节 1.*号的意义 (1)在指针声明时,*号表示所声明的变量为指针 (2)在指针使用时,*号表示取指针所指向 ...

  2. 深入理解C语言中的指针与数组之指针篇

    转载于http://blog.csdn.net/hinyunsin/article/details/6662851     前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本 ...

  3. 深入理解C语言中的指针与数组之指针篇(转载)

    前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本所在.相信,任意一家公司如果想要考察一个人对C语言的理解,指针和数组绝对是必考的一部分. 但是之前一方面之前一直在忙各种事情 ...

  4. C语言中file文件指针概念及其操作 (转载)

    文件 文件的基本概念 所谓"文件"是指一组相关数据的有序集合. 这个数据集有一个名称,叫做文件名.实际上在前面的各章中我们已经多次使用了文件,例如源程序文件.目标文件.可执行文件. ...

  5. Go语言基础之指针

    区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针. 要搞明白Go语言中的指针需要先知道3个概念:指针地址.指针类型和指针取值. Go语言中的指针 Go语言中的函数传参都是值拷贝 ...

  6. c语言之函数指针应用

    c语言之函数指针应用 1.函数指针与指针函数 在开始运用函数指针前,我们需要将两个概念即:函数指针与指针函数搞清楚. 函数指针,指明这个一个函数,但返回值为指针类型,语法格式为: 类型名* 函数名A( ...

  7. 3.1 Go语言基础之指针

    区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针. 要搞明白Go语言中的指针需要先知道3个概念:指针地址.指针类型和指针取值. 一.Go语言中的指针 Go语言中的函数传参都是值 ...

  8. C语言之漫谈指针(上)

    C语言之漫谈指针(上) 在C语言学习的途中,我们永远有一个绕不了的坑,那就是--指针. 在这篇文章中我们就谈一谈指针的一些基础知识. 纲要: 零.谈指针之前的小知识 一.指针与指针变量 二.指针变量的 ...

  9. C语言之漫谈指针(下)

    C语言之漫谈指针(下) 在上节我们讲到了一些关于指针的基础知识: 详见:C语言之漫谈指针(上) 本节大纲: 零.小tips 一.字符指针 二.指针数组与数组指针 三.数组传参与指针传参 四.函数指针及 ...

随机推荐

  1. 基于:Hadoop 2.6.0-cdh5.4.0 hive1.1.0 HBase 1.0.0-cdh5.4.0 关键配置文件

    core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value ...

  2. 全文检索技术---Lucene

    1       Lucene介绍 1.1   什么是Lucene Lucene是apache下的一个开源的全文检索引擎工具包.它为软件开发人员提供一个简单易用的工具包(类库),以方便的在目标系统中实现 ...

  3. JavaWeb 没用

    Servlet的生命周期 初始化:Web容器加载servlet,调用innit(),只执行一次 处理业务: 请求到达时,运行service方法 并调用相应的doget或者dopost方法.  可执行多 ...

  4. 业务逻辑:五、完成认证用户的动态授权功能 六、完成Shiro整合Ehcache缓存权限数据

    一. 完成认证用户的动态授权功能 提示:根据当前认证用户查询数据库,获取其对应的权限,为其授权 操作步骤: 在realm的授权方法中通过使用principals对象获取到当前登录用户 创建一个授权信息 ...

  5. Linux expect命令

    一.简介 通过Shell可以实现简单的控制流功能,但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能.而就使用来实现这种功能的工具.Ex ...

  6. R: 用 R 查看、管理文件(夹)

    文件管理主要函数: list.files( ): 查看当前目录下文件. file.show( ): 显示文件. file.access( ): 查看文件是否可读可写. file.create( ): ...

  7. Django框架 之 view视图

    Django框架 之 view视图 浏览目录 概述 简单的视图 HttpRequest对象 CBV和FBV 给视图加装饰器 Request对象 Response对象 JsonResponse对象 Dj ...

  8. Java Collection.RP

    在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便.这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结 ...

  9. Spring.Net 未将对象引用设置到对象的实例

    “/”应用程序中的服务器错误. 未将对象引用设置到对象的实例. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详 ...

  10. oracle 逻辑体系结构详解

    以前对数据库的了解大多数是集中在mysql,最近工作里面一直使用的是oracle,虽然说在互联网行业mysql大行其道,但是一些传统行业或者是金融领域还是更加倾向于使用oracle,sqlserver ...