Parens是否必需:&(Array [id])?发送元素#id的指针

时间:2011-11-10 21:35:54

标签: c arrays pointers

如果我有一个数组并想要指向数组的第id个元素的指针是等价的吗?

int* hello = &Array[id];

int* hello = &(Array[id]);

2 个答案:

答案 0 :(得分:4)

不,括号不是必需的,是的,这两个是等价的。数组下标has higher precedence比地址运算符。

答案 1 :(得分:2)

然而,在C中,它相当于

 int *hello = Array+id;

(假设Arrayint - s的数组或指向int的指针。)

而且我敢说使用指针添加而不是取数组元素的地址更常见,即更惯用于C(但这是一个品味问题)。

PS。在C ++中,等价是不正确的,例如因为operator +operator []可以是用户定义的(但不是指向int-s的指针)。