1.有定义int x[5],则以下表达式中不能代表数组元素x[1]的地址的是() A)&x[0]+1 B)&x[1] C)&x[0]++ D)x+1求高手指点选那个正确?
问题描述:
1.有定义int x[5],则以下表达式中不能代表数组元素x[1]的地址的是() A)&x[0]+1 B)&x[1] C)&x[0]++ D)x+1
求高手指点选那个正确?
答
A)&x[0]+1
-> 取x[0]的地址+1(数组地址+1,是把地址往后移一个数组的类型的长度,这里是int,也就是往后移4)
所得到的地址就是x[1]的地址
B)&x[1]
-> 取x[1]的地址,这没什么可说的了
C)&x[0]++
-> 可以看做&(x[0]++)是取x[0]的地址后,将x[0]的值递增
D)x+1
-> 数组名x,等价于&x[0],其余见A)
很明显,C是错的