C语言 a+=b;问题

int arr[]={6,7,8,9,10};
int *ptr = arr;
*(ptr++) = *(ptr++) +123;
printf("%d\n",*(ptr-1));
//7
int arr[]={6,7,8,9,10};
int *ptr = arr;
*(ptr++) += 123;
printf("%d\n",*(ptr-1));
//129
为什么ptr,加的值不一样

第1个回答  推荐于2016-07-29
int arr[]={6,7,8,9,10};
int *ptr = arr;
*(ptr++) = *(ptr++) +123;
printf("%d\n",*(ptr-1));
printf("%d\n",*(ptr-2));

它自增了两次追问

这个知道,我想问*(ptr++) += 123;为什么只自增一次

追答

先执行自增 然后再预算 运算的时候这个变量就是它自增一次的变量 省略的是变量 不是语句

本回答被提问者和网友采纳
第2个回答  2014-10-19
没设循环吧 我说那个追问
相似回答
大家正在搜