这段程序答案2 4是怎么算出来的呢?#include main(){int a[5]={2,4,6,8,10},*p,**k;p=a; k=&p;printf("%d",*(p++));printf("%d\n",**k);return 0;}

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 02:55:13

这段程序答案2 4是怎么算出来的呢?#include main(){int a[5]={2,4,6,8,10},*p,**k;p=a; k=&p;printf("%d",*(p++));printf("%d\n",**k);return 0;}
这段程序答案2 4是怎么算出来的呢?
#include
main()
{int a[5]={2,4,6,8,10},*p,**k;
p=a; k=&p;
printf("%d",*(p++));printf("%d\n",**k);
return 0;
}

这段程序答案2 4是怎么算出来的呢?#include main(){int a[5]={2,4,6,8,10},*p,**k;p=a; k=&p;printf("%d",*(p++));printf("%d\n",**k);return 0;}
数组名字表示数组的第一个元素地址,就是说p=a,p指向2
对于p++,先执行printf,然后再执行++,就是说输出2后,p才指向4
虽然p的指向变了,但是p自己的地址没有变,所以k始终指向p,执行第二个print时,p已经指向4了,所以输出是4