有什么区别
int *arp = NULL;
int c;
++arp[c];
还有
int *arp = NULL;
int c;
arp[c]; c++;
请问我需要知道这个增量的含义
++arp[c];
++arp[c];
这会解引用
arp[c]
(与 *(arp + c)
相同),然后使用预递增运算符将 arp[c]
中的值增加 1。c
保持不变。
arp[c];
c++;
这会取消引用
arp[c]
但不会对其执行任何操作,因此毫无意义。之后,它使用后置递增运算符将 c
加 1。arp[c]
保持不变。
注意:两个片段都有未定义的行为,因为
arp
指向 NULL
并且 c
在您读取时未初始化。