指针
1.基本概念
内存单元的指针和内存单元的内容是两个不同的概念。
指针就好比帐号的存单,存款数是存单的内容。单元的地址即为指针,其中存放的数据才是该单元的内容。在c中允许用一个变量来存放指针,这种变量称为指针变量。一个指针变量的值就是某个内存单元的地址或称为某内存单元的指针。
严格的说,一个指针是一个地址,是一个变量。而一个指针变量却可以被赋予不同的指针值,是变量。但常把指针变量简称为指针。既然指针变量的值是一个地址,那么这个地址不仅可以是变量的地址,也可以是其它数据结构的地址。
2. 变量的指针和指向变量的指针变量
变量的指针就是变量的地址。存放变量地址的变量是指针变量。允许用一个变量来存放指针,这种变量称为指针变量。因此一个指针变量的值就是某个变量的地址或称为某变量的指针。
在程序中用‘*’符号表示“指向”,例如,i_point代表指针变量,而*i_point是i_point所指向的变量。
3. 定义一个指针变量
对指针变量的定义包括三个内容:
a.指针类型说明,即定义变量为一个指针变量。
b. 指针变量名。
c. 变量值(指针)所指向的变量的数据类型。
格式:
类型说明符 *变量名;
其中,*表示这是一个指针变量,变量名即为定义的指针变量名,类型说明符表示指针变量所指向的变量的数据类型。
例如: int *pl;
应当注意一点:一个指针变量只能指向同类型的变量。
4. 指针变量的引用
指针变量同普通变量一样,使用之前不仅要定义说明,而且必须赋予具体的值。未经赋值的指针变量不能使用,否则将赵成系统混乱,甚至死机。指针变量的赋值只能赋予地址,决不能赋予任何其它数据,否则将引起错误。
两个关系运算符:
a.& 取地址运算符
b.* 指针运算符
5.指针变量作为函数参数
函数的参数不仅可以是整形,实型,字符型等数据,还可是指针类型。
6.指针变量的几个问题
7. 指向数组元素的指针
把a[0]元素的地址赋给指针变量P.也就是说,P指向a数组的第0号元素。
8.通过指针引用数组元素
c语言规定;如果指针变量P已经指向数组的一个元素,则P+1指向同一数组中的下一个元素。
二维数组指针变量说明的一般形式为:
类型说明符 (*指针变量名)[长度]
9.字符串的指针指向字符串的指针变量
用字符数组存放一个字符串,
用字符串指针指向一个字符串。
char *string=“I love China”;
在printf语句中用指针变量PF代替了格式串。
char *PF;
PF=“%d\n”;
指针数组格式:类型说明符 *数组名[数组长度]
例如:int *pa[3]
10. 函数指针
类型说明符 (*指针变量名)();
调用函数的一般形式为:(*指针变量名) (实参表)
阅读(528) | 评论(0) | 转发(0) |