C語言中「指標」和「指標變數」的區別是什麼

2021-08-16 12:09:24 字數 413 閱讀 8869

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

系統為每乙個記憶體單元分配乙個位址值,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才對。所以有時看書要根據上下文理解實質,而不能過於拘泥於文字表述。

c語言中指標常量和常量指標的區別

1 指標常量 主語是常量,定語是指標,所以這是乙個常量,乙個指標型別的常量。定義的時候必須初始化 char const p b const 修飾的是p,所以p是個常量,指標常量。是常量的話,值就是固定的,不能被改變,否則就是變數了,所以p p p c,都是錯誤的。char a 2 a就是乙個指標常量...

c語言中指標中 和 。的區別

比如有如下結構 typedef strut node listnode listnode p listnode malloc sizeof listnode 上面語句中涉及到 指標變數和結點變數兩個概念 變數p 是listnode 型別的指標變數 p的值指向某乙個結點的位址 p所指向的 listno...

C語言中指標大全

1.使用二維字串儲存字串的時候會出現儲存浪費的情況,使用指標陣列儲存則不會 char s for i 0 ifor i 0 i 3 i 2.指標陣列作為函式引數傳遞多個字串給另乙個函式。指標陣列是乙個陣列,只是裡面存放了指標 void str sort char s,int n n代表指標陣列的長度...