int
*const p;
//乙個常量
指標變數不允許修改,即指向的位址不能被修改,但是位址裡的內容可以被修改。
const
int*p =
&a;//乙個指標
指標指向的變數的值不可通過該指標修改,但是指標指向的值可以改變。
const
int*
const b =
&a;
既不能更改它所指向的位址,也不能修改指向位址上的值。
int
*p[2];
//乙個陣列,每個元素都是int型別的指標。
「」的優先順序要比「*」要高,所以 p先與「」結合,構成乙個陣列,陣列名為 p,而「int*」修飾的是陣列的內容,即陣列的每個元素。
int
(*p)[2
];//乙個指標,指向含2個元素的一維陣列。
「()」的優先順序比「」高,「*」號和p構成乙個指標的定義,指標變數名為p,而 int 修飾的是陣列的內容,即陣列的每個元素。陣列指標也稱指向一維陣列的指標,亦稱行指標。
指帶指標的函式,即本質是乙個函式,函式返回型別是某一型別的指標。
int*f
(x,y)
;
首先它是乙個函式,只不過這個函式的返回值是乙個位址值。函式返回值必須用同型別的指標變數來接受,也就是說,指標函式一定有函式返回值,而且在主調函式中,函式返回值必須賦給同型別的指標變數。
函式指標是指向函式的指標變數,即本質是乙個指標變數。
int
(*f)
(int x)
;/*宣告乙個函式指標 */
f=func;
/* 將func函式的首位址賦給指標f */
void
(*fptr)()
;
fptr =
&function;
fptr = function;
x =
(*fptr)()
;x =
fptr()
;
第二種格式看上去和函式呼叫無異。但是有些人傾向於使用第一種格式,因為它明確指出是通過指標而非函式名來呼叫函式的。 C語言中的常量指標與指標常量
1.常量指標與指標常量是c語言中兩個比較容易混淆的概念 1 const char p 2 char const p a 3 char p abc 1 式定義了乙個常量指標,即指向乙個常量的指標,指向的內容是常量,不可修改,放在常量區的,但指標本身可以修改,即 p b 是非法的,p是p指向的常量的第乙...
C語言中的指標常量與常量指標
很多人糾結過這兩個名詞,也有人寫文章區分兩者的區別。其實很簡單,常量指標和指標常量乙個是指標 乙個是常量。const int p var 與 int const p var 的功能是相同的,都是乙個指向整型常量的指標。指標的數值可以修改,但是當前指標指向的量不可修改。該如何去確認p var的含義呢?...
C語言中的陣列指標與指標陣列
一 指標陣列和陣列指標的記憶體布局 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣列的指標 的簡稱。下...