# include
main()
{
int y,a[]={1,2,3,4};
int *p=a;
p=&a[1];
y=(*--p)++;
printf("the result is %d",y);
}
答案为 1
这是编程的源代码。你可以按照上述的内容用C执行。得到答案就是1.
P指向a[1]的地址,--p就是指向了a[0]的地址,然后*(--p)就是a[0]的值,然后a[0]的值为1,最后就相当于y=a[0]++,所以y=1
一步一步分析
假设 j=--p 相当于 j=p-1 p=1;
所以 (*--p)=a[0]=1
y=(*--p)++ 相当于 y=(*--p) (*--p)=(*--p)+1
所以答案为(*--p)=1