p =数组是否与p =& array [0]相同?

时间:2011-10-08 17:17:16

标签: c++ arrays pointers

int numbers[20];
int * p;    

这两项作业是否相同?

p = numbers;
p = &numbers[0];

3 个答案:

答案 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'元素的地址