数组和指针的问题?

来源:百度知道 编辑:UC知道 时间:2024/05/14 11:06:19
设int arr[]={6,7,8,9,10};
int *ptr=arr;
*(ptr++)+=123;
printf(”%d,%d”,*ptr,*(++ptr));

请问 最后输出什么?
为什么?????!!!!!

*(ptr++)+=123; //先引用ptr,然后才ptr++,此时ptr指向arr[1]
printf()是可变形参函数;运用了栈原理,先取最后的参数,所以先看到表达式:*(++ptr),它是先自加,然后才引用,ptr指向arr[2],得到的值是:8,然后看到表达式:*ptr,得到的结果仍然是8

130,131,132,133,10
先引用,指向第二个,加上123后赋予第一个,最后一个不变