关于取数组地址

 在文《csdn一道C语言题的学习》中,有关于对数组地址的操作。对于一个数组struct  A,A就是指向数组的首地址,这个是在编译时确定的,对于取址操作符&,在运行时确定,&A的值也是数组的首地址。即A与&A的值是相同的,不过两者的含义有所不同。区别如下:
1)地址含义的不同,A又可以理解为&A[0],A+1,即表示&A[1];但是,对于&A+1,则表示是下个数组的首地址,    即A+sizeof(A)。
2)取值方法的不同,显然*A即为A[0],*(A+1)即为A[1],这是常用的方式。*(&A)在运行时*和&相互抵消,值仍然是指向数组A的首地址。要取A[0]的值,应该用**(&A)才可。相似的,取A[1]的值,应该是*(*(&A)+1)。注意跟**(&A+1)的区别,后者是取下个数组首个元素的值。这种方式一般不会采用,不过,可以学习下,以当消遣之用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值