这个是一个算符先后顺序问题
先说题目:++p表示指针往后加1 , 这时y=2,而--是在赋值以后执行的,所以y=2,而a[]={1,1,3,4};
再说x=i++,同样的道理,先赋值,再自增,因此x=1; i=2;
前置自增自减,先自增自减,在使用值,后置自增自减,先使用值,再自增自减
首先,p指向 a[0]
++p,p指向a[1],则*++p就是先指向a[1],在取a[1]的值,为2
后面的--是先取 *++p的值,之后再自减,所以y还是为2
当i=1时,执行x=i++语句,会先将 i 赋于x,然后才执行i=i+1,所以x=1, i=2
如果写成x=++i,会先执行i=i+1,然后将 i 赋于x,此时x和i都为2