再提问个,那位知道这个是怎么算的?

来源:百度知道 编辑:UC知道 时间:2024/06/19 01:35:08
下面这段代码
int arr[]={6,7,8,9,10};
int *ptr=arr;
*(ptr++) +=123;
printf("%d %d",*ptr , *(++ptr));

我是这么理解的
*(ptr++) +=123 等于 *(ptr++)=*(ptr++)+123
先算左边 *(ptr++)+123 为6+123=129 此时指针指向arr[1]=7
下面的我不知道怎么算拉。。。。

我运行后是 8 8 我用的是 DEV-C++ 5

那个给我解释下 这个到底怎末算?具体点 谢谢

要分的去 我发错地方拉
http://zhidao.baidu.com/question/62730674.html?quesup1

*(ptr++) +=123;
修改arr[0]的值为129,并且ptr指向arr[1]
printf("%d %d",*ptr , *(++ptr));
函数实参按从右到左入栈
先*(++ptr),ptr指向arr[2],返回arr[2]的内容
*ptr,ptr在上一步已经被修改,返回arr[2]的内容
所以打印值为8 8