C語言中的陣列 指標陣列 陣列指標

2021-09-12 18:35:17 字數 1016 閱讀 9546

1 #include 2 

3 int main()

4

執行結果:

0xbfeefda9

0xbfeefdaa

0xbfeefdab12

70xbfeefda9

0xbfeefdaa

0xbfeefdab12

7

以上執行結果可以得出如下結論:

char *str[3];

1、 * str+i = &strr [ i ]

2、 * (*str+i) = strr [ i ]

3、對於陣列strr來說,記憶體分配了3個字串的長度,即3×1個位元組。

1)若是定義的char strr[30],記憶體分配30×1個位元組長度

2)若是定義的int strr[30],記憶體分配30×4個位元組長度

4、對於指標陣列,其變數名可以這麼理解:

*str [3] 是乙個有三個元素的陣列,每乙個元素的記憶體長度是乙個指標變數的長度,即4個位元組。

char *str[3];  

&str=0xbfd98a94 //2708

&(str)+1=0xbfd98aa0 //2720

字串的資料型別記憶體布局如下所示:

數值指標的宣告方式是如下

1、p指向乙個長度為3×int長度的陣列,該陣列有三個元素,(*p) [0],(*p) [1],(*p) [2].

2、陣列(*p) [3]的首位址,也可以是陣列的變數名,即(*p) ,其他元素的首位址在(*p) 的基礎上做加法即可

C語言中陣列指標和指標陣列

如果看這兩個概念的英文翻譯可能會更容易理解 陣列指標 pointer to array 指標陣列 a array of pointer 顧名思義,陣列指標就是乙個指標變數,該變數指向乙個陣列。而指標陣列就是乙個陣列,這個陣列的元素都是指標,即每乙個元素都可以當成乙個指標變數使用。下面給出兩者的定義和...

C語言中的陣列指標與指標陣列

一 指標陣列和陣列指標的記憶體布局 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣列的指標 的簡稱。下...

C語言中指標陣列與陣列指標

1 指標陣列的實質是乙個陣列,這個陣列中儲存的內容全部是指標變數。2 陣列指標的實質是乙個指標,這個指標指向的是乙個陣列。1 int p 5 int p 5 int p 5 2 一般規律 int p p是乙個指標 int p 5 p是乙個陣列 3 如果核心和 結合,表示核心是指標 如果核心和 結合,...