C语言的一个指针程序

来源:百度知道 编辑:UC知道 时间:2024/05/19 04:15:20
void main()
{ int a []={5,8,7,6,2,7,3};
int y,*p=&a[1];
y=(*--p)++;
printf(“%d ”,y);
printf(“%d”,a[0]);
}
运行结果为5,6.
这个6,我不太明白,请高手解答哈~为什么a[0]的值会改变呢?y的值怎么影响a【0】了呢
补理解为什么会影响a[0]

你注意到啦吗?
你的第四个语句:y=(*--p)++;
这个--p就已经改变啦指针的指向,--P相当于P=P-1;指针向前移动啦一位,那这时你取出的是a[0]的值,则a[0]的值在加一,就是(*--p)++做的事啦。