補數據結構看書的時候,發現好久不用C,關於指針有些遺忘了,整理一下。
以下內容是一段代碼,不要單句去看:
int b=2;//假設b存放的地址爲FFFFFFFFH
int *a; //聲明一個指針變量,該指針變量指向一個存有int類型數的內存單元。該變量有自己的地址,假設爲1456231FH;
a=&b;//使指針a指向變量b;所謂a指向變量b,就是指針a的內存單元中存放的內容是b變量的地址;那麼1456231FH這個內存單元中存放的內容就是FFFFFFFFH;
int c=*a;//指針a訪問它所指向的變量,取出變量值;然後賦值給c;
&a;//該指針變量有自己的地址,爲1456231FH;
以下是證實代碼:
void main()
{
int s=2;
int *a;
a=&s;
printf("main.a=%d\n",*a);
printf("main.a.thing=%x\n",a);
printf("main.s.address=%x\n",&s);
printf("main.a.address=%x\n",&a);
}
運行結果:
由此可以驗證,指針變量中存放的就是它所指向的變量的地址。