指针变量作函数参数
函数参数可以是指针类型,作用是将一个变量的地址传送到另一个函数中。
为使在函数中改变的变量值能被主调函数main使用,应用指针变量作为函数参数,在函数执行过程中使指针变量所指向的变量值发生变化,函数调用结束后,这些变量值的变化依然保留下来,这样就实现了“通过调用函数使变量的值发生变化,在主调函数中可以使用这些改变了的值”的目的。
若想通过函数调用得到n个要改变的值,可以如此:
- 在主调函数中设n个变量,用n个指针变量指向它们;
- 设计一个函数,有n个指针形参。在函数中改变这n个形参的值;
- 在主调函数中调用这个函数,将这n个指针变量作实参,将其地址传给函数形参;
- 执行函数过程中,通过形参改变它们所指向的n个变量的值;
- 主调函数就可以使用这些改变了值的变量。
注意:不能企图通过改变指针形参的值而使其指针实参的值改变。
函数调用可以(而且只可以)得到一个返回值(函数值),而使用指针变量作参数,可以得到多个变化了的值。要善于利用指针法。
通过指针引用数组
数组元素的指针
数组元素的指针就是数组元素的地址。
可以用一个指针变量指向一个数组元素。
在C中,数组名(不包括形参数组名,形参数组不占据实际的内存地址)代表数组中首元素(即序号为0的元素)的地址。因此p=&a[0];等价于p=a;
数组名不代表整个数组,只代表数组首元素的地址。“p=a;”作用是把a数组的首元素的地址赋给指针变量p,而不是把数组a各元素的值赋给p。
定义时初始化:int *p=&a[0];等价于int a;p=&a[0];等价于int *p=a;
作用是将a数组的首元素(a[0])的地址赋给指针变量p(而不是赋给*p)。
引用数组元素时指针的运算
在一定条件下(当指针指向数组元素的时候)允许对指针进行加和减的运算。如:
1.加/减一个整数(用+/-或+=/-=),如p+1/p-1;
若指针变量p指向数组中某元素,则p+1/p-1指向下/上一个元素。注意:p+1加的是一个数组元素所占用的字节数。p+1所代表的地址实际上是p+1*d,d为一个数组元素所占的字节数。
若p初值为&a[0],则p+i和a+i就是数组元素a[i]的地址,或者说,它们指向a数组序号为i的元素。//a代表数组首元素地址,a+i也是地址。计算方法和p+i一致。
*(p+i)或*(

本文详细介绍了C语言中指针如何作为函数参数来引用和操作数组,包括数组元素的指针、引用数组元素、通过指针引用数组和字符串的方法。通过指针可以改变函数外变量的值,实现数据的传递和更新,同时讲解了指针在引用多维数组和字符串中的使用技巧,以及与字符数组的区别和联系。
最低0.47元/天 解锁文章
1125

被折叠的 条评论
为什么被折叠?



