若有定义:int aa[8];,则以下表达式中不能代表数组元素aa[1]的地址的是
问题描述:
若有定义:int aa[8];,则以下表达式中不能代表数组元素aa[1]的地址的是
A.&aa[0]+1
B.&aa[1]
C.&aa[0]++
D.aa+1
答
选C
aa是数组名的同时也是这个数组首元素的首地址,也就是aa=&aa[0]
找aa[1]的地址就是首地址偏移一个整形位,所以A D 对
B就是对元素aa[1]取地址
所以ABD对
C中&小于后置++的优先级所以&aa[0]++等价于
&(aa[0]++)所以先对aa[0]中的元素值加1后,在对aa[0]取址,结果还是aa[0]的地址
故C错