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 如果核心和 結合,表示核心是指標 如果核心和 結合,...