int numbers[20];
int * p;
这两项作业是否相同?
p = numbers;
p = &numbers[0];
答案 0 :(得分:24)
是的,两者都是一样的。
在这种情况下,数组的名称衰减为指向其第一个元素的指针。
因此,
p = numbers; //Name of the array
与:
相同p = &numbers[0]; //Address of the First Element of the Array
答案 1 :(得分:16)
是的,它们是一样的。当在rvalue上下文中调用数组的名称时,它会衰减到指向其第一个元素的指针。
答案 2 :(得分:1)
numbers[0] is equal to *number and equal to *(number+0)
numbers[x] = *(number+x)
so&(*(number + x))= number + x这是x'元素的地址