C 在这方面是否需要paren:&;(数组[id])?发送元素#id';s指针
若我有一个数组,并且想要将指针分配给数组的第id个元素,那个么这些元素是等价的吗C 在这方面是否需要paren:&;(数组[id])?发送元素#id';s指针,c,arrays,pointers,C,Arrays,Pointers,若我有一个数组,并且想要将指针分配给数组的第id个元素,那个么这些元素是等价的吗 int* hello = &Array[id]; int* hello = &(Array[id]); 不,括号是不必要的,是的,这两个是等价的。数组下标大于地址运算符。否,不需要括号,是的,这两个是等效的。数组下标大于地址运算符。然而,在C中,它相当于 int *hello = Array+id; (假设Array是int-s的数组或指向int的指针) 我敢说,在C语言中,使用指针加法而不
int* hello = &Array[id];
int* hello = &(Array[id]);
不,括号是不必要的,是的,这两个是等价的。数组下标大于地址运算符。否,不需要括号,是的,这两个是等效的。数组下标大于地址运算符。然而,在C中,它相当于
int *hello = Array+id;
(假设Array
是int
-s的数组或指向int
的指针)
我敢说,在C语言中,使用指针加法而不是获取数组元素的地址更为常见,也就是说,更为惯用(但这是一个品味问题)
<> P.P.S.在C++中等价性不是真的,例如,因为<代码>操作符+< /COD>和<代码>运算符[]/Cord>可以被用户定义(但是对于指针不指向ITO -S)。< /P> < P>但是,在C中,它等同于
int *hello = Array+id;
(假设Array
是int
-s的数组或指向int
的指针)
我敢说,在C语言中,使用指针加法而不是获取数组元素的地址更为常见,也就是说,更为惯用(但这是一个品味问题)
<> P.P.S.在C++中,等价性不是真的,例如,因为<代码>操作符+< /COD>和->
这样的运算符总是在中缀和前缀运算符之前应用。请注意,所有后缀都具有最高的优先级,所以像->
这样的运算符总是在中缀和前缀运算符之前应用。