linux 指针数组作为形参_8.2 C++指针变量作函数参数接收数组地址

点击上方“C语言入门到精通”,选择置顶

第一时间关注程序猿身边的故事

f4d1103e1477199ef46d0977e0ed6b87.png

作者

闫小林

白天搬砖,晚上做梦。我有故事,你有酒么?

C++指针变量作函数参数接收数组地址

在C++中,用指针变量指向数组元素时要注意: 指针变量p可以指向有效的数组元素,实际上也可以指向数组 以后的内存单元。

int arrya[10];//指针变量p的初值为&array[0]
*p=array;cout<10;//输出arry[10]的值

在使用指针变量指向数组元素时,应切实保证指向 数组中有效的元素指向数组元素的指针的运算比较灵活。

如果先使p指向数组array的首元素,则: 

p++,使p指向下一元素,即array[1],如果用*p,得到下一个元素array[1]的值。

*p++,由于++和*同优先级,结合方向为自右而左,因此它等价于*(p++),作用是:先得到p指向的变量的值,然后再使p的值加1。

for(p=a:p10;p++)
{cout<}//等同于for(p=a;p10;)
{cout<}

*(p++)与*(++p)作用不同,前者是先取* p值,然后使p加1,后者是先使p加1,再取* *p,若p的初值为array,输出*(p++)得到array[0]的值,而输出*(++p)则得到array[1]的值。

(*p)++表示p所指向的元素值加1。

如果p当前指向array[i],则 *(p--)先对p进行*运算,得到array[i],再使p减1,p指向array[i-1] 。
*(++p)先使p自加1,再作*运算,得到array[i+1]。
*(--p)先使p自减1,再作*运算,得到array[i-1]。
在C++中,将+和--运算符用于指向数组元素的指针变量十分有效,可以使指针变量自动向前或向后移动,指向下一个或上一个数组元素。 在上一节小林已经讲过:数组名代表数组首元素的地址,用数组名作函数的参数,传递的是数组首元素的地址,同样用指针变量作函数形参, 也可以接收从实参传递来的数组首元素的地址。  在C++实际中,函数调用时并不存在一个占有存储空间的形参数组,只有指针变量。 实参与形参的结合,有以下几种形式: 
实参 形参
数组名 数组名
数组名 指针变量
指针变量 数组名
指针变量 指针变量
实参数组名array代表一个固定的地址,或者说是指针型常量,它的值是无法改变的;而形参数组名是指针变量,并不是一个固定的地址值,它的值是可以改变的。 在函数调用开始时,它接收了实参数组首元素的地址,但在函数执行期间,它可以再被赋值。 以上,如果你看了觉得对你有所帮助,就给小林点个赞叭,这样小林也有更新下去的动力,跪谢各位父老乡亲啦~

c114f11f106775e9648da8ba247d350c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值