c中的运算优先级问题,据说连老师都被问倒了
#include<stdio.h>void main()
{
int a[5]={5,8,2,6,9},b[5]={5,8,2,6,9},*p,y;
p=&a[1];
y=(*p--)++;
printf("%d,%d,%d,%d\n",y,a[1],a[0],*p);
p=&b[1];
y=(*--p)++;
printf("%d,%d,%d,%d",y,b[1],b[0],*p);
}
实际输出结果:8,9,5,5
5,8,6,6
到底为什么会是这种结果啊,我都搞晕了,老师也讲不清楚。(已证明p中的地址在变化)