指標陣列與二維陣列的區別

2022-09-22 22:33:21 字數 302 閱讀 7635

下面有兩個定義:

int a[10][20];

int *b[10];

其中a是乙個真正的二維陣列,它分配了200個int型別的儲存空間,並且通過常規的矩陣下標運算可以得到矩陣元素,

對於b來說,該定義僅僅分配了10個指標,並且沒有對它們初始化,它們的初始化必須以顯示的方式進行,比如靜態初始化或通過**初始化.假定b的每個元素都指向乙個具有20個元素的陣列,那麼編譯器就要為它分配200個int型別長度的儲存空間以及10個指標的儲存空間.

指標陣列的優點在於:陣列的每一行長度可以不同.

二維陣列 指標陣列與陣列指標

一 首先我們從字面意思理解一下什麼是指標陣列什麼是陣列指標 1 指標陣列 本質是乙個陣列,陣列中的每乙個元素是乙個指標。2 陣列指標 本質是乙個指標,而指標指向乙個陣列。二 我們該怎麼區分指標陣列和陣列指標?1 總共有三種表示形式 int p 4 和int p 4 和int p 4 表面看起來是不是...

陣列指標與二維陣列

陣列指標的概念一直就沒理解太清楚,中間有很多次,以為清楚了,但是還沒有真正的了解清楚。要洞察這裡面的問題,就首先要了解編譯器在這裡面做了什麼。char a 6 這裡宣告並定義了乙個二維陣列,編譯器採用直接賦值的方式給一塊連續記憶體賦值。char b 6 a 這裡宣告並定義了乙個陣列指標,指向二維陣列...

陣列指標與二維陣列

很多人認為二維陣列的實現是用二級指標偏移實現的,這是錯誤的 二維陣列通過兩次偏移獲取到陣列中的某乙個元素,所使用的指標是陣列指標,陣列指標是一級指標。include include 本質是陣列指標,必須寫4所在這一維 void print int p 4 int row printf n intma...