int a[]={5,8,7,6,2,7,3},y;
int *p;
p=&a[1];
y=(*--p)++;
printf(“%d,%d,%d\n”,y,*p,*p++);
这题目输出的结果是
5,6,6解析:
首先声明一个整型数组a,整形变量y,整型指针p。
p指向数组a[]的第1个元素,也就是8。
接下来,指针p先--,指向了数组a[]的第0个元素,也就是5。之后y取出p指向的内容,即5。之后p指针指向的内容又累加,即数组a[]的第0个元素从5变成了6。
因此打印输出y的内容是5,*p的内容是6,*p++的内容还是6(printf()执行完之后指针才移动,黄花菜都凉了)。
能不能说一下详细的过程,谢谢啦