C语言指针入门.docVIP

  • 1
  • 0
  • 约 5页
  • 2017-08-26 发布于河南
  • 举报
C语言指针入门.txt男人的话就像老太太的牙齿,有多少是真的?!问:你喜欢我哪一点?答:我喜欢你离我远一点!执子之手,方知子丑,泪流满面,子不走我走。诸葛亮出山前,也没带过兵!凭啥我就要工作经验? 指针 C语言编程入门(十三) ----中软总公司 李长林 -------------------------------------------------------------------------------- 使用指针是C语言的重要特点之一。什么是指针呢?指针是存放内存地址的一种变量类 型。也就是说,指针这个变量是用来说明某个变量在内存中的位置。或者说,指针是指向另 一个变量的变量。指针和地址紧密地联系在一起。 这样说明,对初学者来说可能有些难于理解,下面图书馆为例来说明什么是指针。 在图书馆中,书库中每一本图书都有一个书号,整个书库按书号有序地排列着。书号就 可看作图书在库中的地址。每一本图书还有一个索引卡片,要查找一本图书,首先从索引卡 上查找这本图书的书号,然后再按书号在库中取书。这过程说明书号表示了图书在库中的位 置,也就是地址。图书索引卡就相当指针变量,在它上面的书号就相当内存地址。而那个号 码位置上的图书,就是它所指的变量。因此,也可以这样说明指针:索引卡(指针)这个变量是 有来说明某本书(某个变量)在书库中(在内存中)的位置;或者说索引卡(指针)是指向一本书 (另一个变量)的变量。 指针通过内存地址间接地址对变量进行操作。利用指针这个数据类型,可以生成更复杂 的数据结构,比如链表、二叉树等;可以使一些复杂的数据,比如:数组、结构、联合等数据 的函数间的传递、操作变得轻而易举;可使程序编译后的目标码执行的速度更快而有效。因 此学习C语言,对指针这个概念一定要理解清楚,正确运用。 一、指针的定义形式 类型标识符 *指针名; 类型标识符:是说明指针所取的对象的数据类型。对于数据类型来说,可以是基本数据 类型,也可以是扩展的数据类型。 *:是表示指针操作符。它的作用有二:一是定义指针变量,二是指明指针所指变量的值。 指针名:用以说明用户指定的符合C语言规定的名字标识符。 例1:Char *ch; 定义了ch指针,它是指向字符型变量。 例2:int *n; 定义了n指针,它是指向整型变量。 例3:float *5指针,它是指向单精度浮点型变量。 例4:int(*p)[10]; 定义了P指针,它是指向数组的指针,数组内有10个元素,每个元素是整型的。 例5: int *p[10]; 定义了P数组,数组内有10个元素,每个元素是指向整型变量的指针。 更复杂的指针定义例子还有很多,待以后各讲中出现时,再作详细说明。指针的读法是: 先读指针名,再读名字右边,再读指针名字左边。如果需要先读指针名左边再读右边,则要 加上小括号。比如例4。 另外,在类型标识符后面和*号前面可加上关键字far或near,来说明远指针或近指针。 例 int far *n; 此例定义了远指针n,它是指向整型变量的。 指针的长度是依赖于它指向的数据类型。比如,int *n;在一般系统上二字节。而intfar *n;为四字节。 二、指针的操作 指针操作时首先对和*两个运算符说明如下: ——地址操作符,它返回操作数的地址。大家可能提出问题,不是按位与运算符吗?怎 么又是地址操作符?是的,C语言允许重复定义一个运算符,而在使用时绝不会混淆。 *——指针运算符,又称间接运算符。在操作中,它返回指针所指位置中变量的值,在定 义变量时它说明这个变量是指针。可看出这样是一种重复定义,(与乘号(*)也是重复)。但 在使用时,因在程序中,位置不同而不会混淆。C语言重复定义的运算符还有,比如负号(-)和减号(-)。 例如: int n=5;/*定义了整型变量n赋初值5*/int *p;/*定义了指针p,它指向整型数据*/p=n; /*将变量n的地址赋给指针p*/printf(N=%d,p指向变量的值=%d\n,

文档评论(0)

1亿VIP精品文档

相关文档