指针与数组的关系及本质

首先解释一下为什吗arr[i]=*(arr+i).在c语言中数组名表示数组首元素地址,arr[i]是按照*(arr+i)处理的,即按照数组元素首地址加上相应的位移量找到新元素的地址,然后解引用,便得到此处的值。接下来我们定义一个整型指针 int *p=arr可见p和arr是等价的。那接下来的事就好办了p[i]=*(p+i)


输出的全是5,也就是说明这4个式子等价所以arr[i]只是伪装,*(arr+i)才是其本质。

最后问题:为什吗子函数形参里定义一个数组用的是指针?因为当你想把父函数里的某个数组传给子函数里的形参,用的是这个数组的名字去传递,所以传指针合适。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值