#include<stdio.h>
main()
{
int a[]={5,8,7,6,2,7,3};
int y,*p=&a[1];
y=(*--p)++;
printf("%d",y);
putchar('\n');
printf("%d",a[0]);
}
解释:
首先指针p指向a[1]元素的地址,其次(*--p)++可再次变化成[*(--p)]++。先算()括号里面的,p指向的地址减一,也就是指向上一个元素的地址,即指向a[0]的地址。y=*(&a[0])++,将指针p地址的数值赋给y,再让当前指针p的值再加1,所以当前指针p指向a[0]的值就变成了6