天天看點

C語言中“指針”和“指針變量”的差別是什麼

比較嚴格的說法是這樣的:

系統為每一個記憶體單元配置設定一個位址值,C/C++把這個位址值稱為“指針”。如有int i=5;,存放變量i的記憶體單元的編号(位址)&i被稱為指針。

“指針變量”則是存放前述“位址值”的變量,也可以表述為,“指針變量”是存放變量所占記憶體空間“首位址”的變量(因為一個變量通常要占用連續的多個位元組空間)。比如在int i=5;後有一句int *p=&i;,就把i的指針&i賦給了int *型指針變量p,也就是說p中存入着&i。是以說指針變量是存放指針的變量。

有一個事實值得注意,那就是有不少資料和教科書并沒有如上區分,而是認為“指針是指針變量的簡稱”,如對int *p=&i;的解釋是:聲明一個int *型指針p,并用變量i的位址初始化;而嚴格說應該是聲明一個int *型指針變量p才對。是以有時看書要根據上下文了解實質,而不能過于拘泥于文字表述。

繼續閱讀