C 指標和陣列解釋

2021-10-18 16:24:47 字數 727 閱讀 3752

a) int a;表示乙個記憶體空間,這個空間用來存放乙個整數(int);

b) int* a;表示乙個記憶體空間,這個空間用來存放乙個指標,這個指標指向乙個存放整數的空間,即a)中提到的空間;

c) int** a;表示乙個記憶體空間,這個空間用來存放乙個指標,這個指標指向乙個存放指標的空間,並且指向的這個空間中的指標,指向乙個整數。也簡單的說,指向了乙個b)中提到的空間;

d) int (a)[4];表示乙個記憶體空間,這個空間用來存放乙個指標,這個指標指向乙個長度為4、型別為int的陣列;和int* a的區別在於,++、+=1之後的結果不一樣,其他用法基本相同。

以上四種型別見上圖表示。

e) int (*a)(int);表示乙個記憶體空間,這個空間用來存放乙個指標,這個指標指向乙個函式,這個函式有乙個型別為int的引數,並且函式的返回型別也是int。

重點:int *p和int (*p)

前者是指標陣列,後者是指向陣列的指標。更詳細地說。

前: 指標陣列;是乙個元素全為指標的陣列.

後: 陣列指標;可以直接理解是指標,只是這個指標型別不是int也不是char而是 int [4]型別的陣列.(可以結合函式指標一併看看…)

int*p[4]------p是乙個指標陣列,每乙個指向乙個int型的

int (*q)[4]---------q是乙個指標,指向int[4]的陣列。

定義涉及兩個運算子:「」(間接引用)、「」(下標),「」的優先級別大於「」的優先級別。

C指標陣列和陣列指標

測試 int main 定義二維陣列m並初始化 int p 4 陣列指標 p是指標,指向一維陣列,每個一維陣列有4個int元素 int i,j int q 3 指標陣列 q是陣列,陣列元素是指標,3個int指標 p m p是指標,可以直接指向二維陣列 printf 陣列指標輸出元素 n for i ...

c 陣列 和 陣列指標

今天 乙個朋友 面試,面試題如下 int tmain int argc,tchar argv int ptr int a 1 printf d t d a 1 ptr 1 return 0 我覺得 指標 只要 掌握 兩方面資訊 就 沒什麼 可難的了.一是 指標變數 裡 存放的 位址 二是 指標變數 ...

C指標和陣列

c語言中,陣列需要注意的地方有兩點 1 c語言中只有一維陣列,陣列大小必須在編譯期就作為乙個常數確定下來,陣列中元素可以是任何型別物件,當然也可以是另外乙個陣列,這樣,要 出乙個多維陣列就不是一件難事了 2 對於乙個陣列,我們只能做兩件事 確定陣列大小,及獲得該陣列下標為0元素的指標,其他關於陣列操...