最近在看C語言深入一點方面的書,感覺指針和數組的關系有很大要理解的地方。偶爾看到有人寫了關於指針和數組的長篇大論。直覺告訴我那是一篇好文章。一定是那位高手幾年來實踐和琢磨的成果。如果能達到他理解的那種水平,那我的C語言又會上一個台階。但是為了能有深刻的體會,我先不看他得文章,自己先琢磨一下。
int a[5]={0,1,2,3,4}
int *p1=a; //將p1定義為指向數組a首元素的首地址,而不是指向數組a的地址,雖然值一樣,意義不一樣
a+i不等於&a+i
a+i==a+i*sizeof(a[0])而&a+i=a+i*sizeof(a)
下面程序的運行結果為? www.2cto.com
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a[5];
int *p1=a;
int *p2=&a;
printf("%p\n",a);
printf("%p\n",a+1);
printf("%p\n",&a+1);
system("PAUSE");
return 0;
}
在我的機子上運行結果為:0022FF20
0022FF24
0022FF34
摘自 雷格碼