|
[PHP]
int a[]={0,1,2,3,4}; void main()
{ int i,*p1,*p2;
for (i=0;i<=4;i++)
printf("%d",a);
printf("\n");
for (i=0;i<=4;i++)
{ p1=&a;
printf("%d",*p1);
}
printf("\n");
for (i=4;i>=0;i--)
{ p1=&a;
p2=p1;
printf("%d!!!!",*p2);
}
printf("\n"); } [/PHP]
出来的结果是
01234
01234
4!!!!3!!!!2!!!!1!!!!0!!!!
可书上的结果说是0****1****2****3****4****
书上说,在第二个for语句中,下标值i从0变到4,在每轮循环中,都把一个元素的地址付给p1,然后利用间接的方式输出对应元素的值.如第一轮循环时,把a[0]的地址付给p1,*p1的值就是a[0]的值,所以输出"0****".
第二个循环中,p1=&a; 是把数组的i位置给了p1,输出为什么会有****,而我自己编译出来是没有****的,,,请问这是怎么回事 ?
看的书是c语言程序设计里的201页 |
|