平房仓通用图:可以请教点关于C语言的问题吗?谢谢大家了

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/04 18:34:14
7若有定义和语句:
static inta[3]={10,20,30};
int **pp,*p;
p=a;pp=&p;
(pp[0]++)[1]+=5;
printf("5d,%d,%d\n",**pp,*p,a[0]);
则输出的结果是
答案是25,25,10。怎么得出来的呢?不明白哦~

语句(pp[0]++)[1]+=5;实际上的操作是:(1)(pp[0])[1]=(pp[0])[1]+5;(2)pp[0]++,第一句让20+5=25,第二句让指针pp和p向后移了一位指向a[1],所以printf出来的结果分别是a[1],a[1],a[0],当然是25,25,10了,需要注意的是pp[0]++是先将pp[0]的值提交给程序,再自加,和++pp[0]是不一样的哦。