欢迎使用CSDN-markdown编辑器

来源:互联网 发布:禁止自启动软件 编辑:程序博客网 时间:2024/05/21 17:06

指针变量定义细节1

1:下面都是合法的定义:
float *pointer_3; // pointer_3是指向单精度型数据的指针变量
char *pointer_4; // pointer_4是指向字符型数据的指针变量
请注意:指针变量名是pointer_3和pointer_4,而不是pointer_3和*pointer_4,即“”不是指针变量名的一部分,在定义变量时在变量名前加一个“*”表示该变量是指针变量。

2:
&a为变量a的地址,*p为指针变量p所指向的存储单元。
二:
对于指针为参数的函数
1:如果想通过函数调用得到n个要改变的值,可以采取下面的步骤:
2: 在主调函数中设n个变量,用n个指针变量指向它们;
3: 编写被调用函数,其形参为n个指针变量,这些形参指针变量应当与主调函数中的n个指针变量具有相同的基类型;
4:在主调函数中将n个指针变量作实参,将它们的值(是地址值)传给所调用函数的n个形参指针变量,这样,形参指针变量也指向这n个变量;
5: 通过形参指针变量的指向,改变该n个变量的值;
6: 在主调函数中就可以使用这些改变了值的变量。
三:
对于指向数组的指针
1:*p = a[0];与*p = a;在a为第一个数组元素的情况下等价,如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。
如果p的初值为&a[0],则:
2: p+i和a+i就是a[i]的地址,或者说,它们指向a数组的第i个元素
3:(p+i)或(a+i)是p+i或a+i所指向的数组元素,即a[i]。
可以看出,[]实际上是变址运算符。对a[i]的求解过程是: 先按a+i×d计算数组元素的地址,然后找出此地址所指向的单元中的值
ps:
如果先使p指向数组a的首元素(即p=a),则:
1) p++(或p+=1)。使p指向下一元素,即a[1]。如果用*p,得到下一个元素a[1]的值。

2) p++。由于++和同优先级,结合方向为自右而左,因此它等价于*(p++)。作用是: 先得到p指向的变量的值(即*p),然后再使p的值加1。例6.5(3)程序中最后一个for语句:
for(p=a;p

0 0
原创粉丝点击