C 學習筆記 指向陣列的指標(例題)

2021-10-11 05:03:02 字數 915 閱讀 4165

int a[10]

=;int*p=a;

則陣列p是指向int型元素的指標;

*(p+i)是陣列a的第i+1個元素

int b[

3]=;

//定義乙個二維陣列

int(

*p)[3]

;//創立乙個指向一維陣列的指標

p=b;

//因為b的元素可看為一維陣列,所以p指向第乙個一位陣列b[0]

int n[

3]=;

int(

*p)[3]

;p=n;

cout<[0

]<<

","<<

*(p[0]

+1)<<

","<<

(*p)[2

]

]<<

","<<

*(p[1]

+1)<<

"\n"

;

輸出結果:

10,20,30

40,50

分析:

p[0]指向二維陣列中第乙個一維陣列(實際是個位址)

p[0][0]指向第乙個一維陣列中的第乙個元素。

*(p[0]+1)是第乙個一維陣列的第二個元素。

(*p)[2],(*p)是第乙個一維陣列的位址,(也是第乙個一位陣列第乙個元素的位址),所以(*p)[2]是第乙個一維陣列的第三個元素

p[1]是第二個一位陣列的位址,也是第二個一位陣列的第乙個元素的位址

p[1][0]是第二個一位陣列的第乙個元素

p[1]+1是第二個一位陣列第二個元素的位址

所以*(p[1]+1)是50

C語言學習筆記之指向陣列元素的指標和指向陣列的指標

現有如下 執行結果為 通過這個例子,我個人的理解是 雖然列印陣列a和 a結果是相同的位址值,但所代表的意義是不同的。陣列名a代表陣列第乙個元素的位址,指標p和陣列名a其實是指向陣列元素的指標。指標pa是指向陣列a這個整體的指標,p和pa是不一樣的。也就是說p i是按照陣列元素的大小向前移動i,而pa...

c 指標陣列與指向陣列的指標

1 int a 10 指向陣列的指標 a是乙個二級指標,可認為是乙個二維陣列的首位址,指向乙個一維陣列,陣列儲存了10個int資料。int arr1 10 一維陣列 int arr2 2 10 二維陣列 int a 10 arr1 a為指向一維陣列的指標,arr1 應該替換為 arr1,cblog外...

C指標 指向陣列的指標和指向陣列內部元素的指標

int p 5 arr 這裡的 也可以不寫,因為陣列名本身就表示陣列的首位址 int p arr int p arr int p arr 0 上面三種宣告方式都是合法且等價的 int a 5 int p a 指向陣列元素的指標,用來訪問陣列內部的元素,單位長度是sizeof int int q 5 ...