要學習指針,應該先了解以下幾個概念:變量的地址,變量的內容,直接尋址,間接尋址.
變量的地址:變量在內存中所占存儲空間的首地址.
變量的內容:變量在內存的存儲單元中存放的數據.
如:
int a=10;//兩個字節
假設a占的內存單元的地址為:2020和2021
則內存單元的地址為2020的是存放數據a(即10)的低字節,內存單元的地址為2021的是存放數據a即10)的高字節.
如果將變量a的首地址2020保存到另壹個變量p中,那麽為了訪問變量a,我們可以通過變量p得到a的的地址2020,再到該地址中訪問變量a.
直接尋址:直接按變量名來存取變量的內容的訪問方式.
專門用於存放地址型數據的變量是指針變量,如上面所說的p.
間接尋址:通過指針變量(如P)間接存取它所指向的變量(如a)的訪問方式稱為間接尋址.
在上例中,a的地址用&a表示.由於p是保存地址型數據的,所以p=a的地址=&a
在此p就叫做指針(或指針變量)
其定義如下:
int *p;
指針有好多好處:
1.為函數提供修改變量值的手段.
2.為C的動態內存分配提供支持.
3.為動態數據結構提供支持.
4.可以改善程序的效率.