好吧,我并不是真的需要这个答案,我只是好奇。
像这样的表达式*ptr++ = a
是完全有效的,因为我们正在对两个对象进行操作ptr
,*ptr
但是如果我写*ptr++ = *ptr + a
它仍然有效吗?
例如,考虑以下代码段:
int main(void){
int a[] = {5,7,8,9,2};
int* p =a;
*p++ = 76; /*altering the first element */
*p++ = *p + 32; /*altering the second element */
p = a;
int i;
for(i = 0;i<5; i++)
printf("%d ",*p++);
return 0;
}
我认为表达式没有什么可担心的,*p++ = *p + 32;
但我不确定所涉及的序列点。