C C 中的多維陣列

2021-08-04 18:33:05 字數 599 閱讀 1437

(1)針對多維陣列,要記住《c++primer》中關於多維陣列的描述,多維陣列的陣列名指向最外層的變數。

int ip[6][3][3];

int ip1[3][3];

可以這麼理解,ip表示乙個指標,該指標指向的位址存放的資料資料型別為乙個3x3的int型陣列,ip仍是乙個一級指標

(2)多維陣列中的資料在記憶體中是連續儲存,但是遍歷時不能直接使用陣列名加第一層索引的形式進行遍歷,

int ip[6][3][3];

for (int i = 0; i < 54; i++)

printf("%d", ip[i]);

這樣是得不到實際的資料內容,參見(1),這樣得到的是位址,要實現遍歷功能,則需要多層迴圈。

(3)使用typedef來使表示式可讀性更好,例

typedef  int ptr3x3[3][3];

int ip[6][3][3];

ptr3x3 * ptr = ip;

其中ptr3x3被定義為乙個用於描述3x3維的int型陣列的資料型別

JAVA中的多維陣列

宣告乙個二維陣列 int matrix new int 5 5 或者使用 int matrix 這是乙個直接初始化的格式 獲取二維陣列的長度。int martix new int 3 4 那麼martix.length 3 即行數 matrix 0 length 4 即列數 建立乙個鋸齒陣列 int...

C 中的動態多維陣列

前言 c 的new操作符是該語言乙個非常好的語法特性,然而實際使用中卻發現new操作符有不少限制,為突出的一點便是用new操作符分配多維陣列空間時,不能讓陣列的每一維都動態可變。本文將對此提出乙個簡單直觀的解決方案,在乙個實際問題的簡化模型中加以說明,並以此釋清許多初學者對c 中new操作符與多維陣...

C 中的動態多維陣列

前言 c 的new操作符是該語言乙個非常好的語法特性,然而實際使用中卻發現new操作符有不少限制,為突出的一點便是用new操作符分配多維陣列空間時,不能讓陣列的每一維都動態可變。本文將對此提出乙個簡單直觀的解決方案,在乙個實際問題的簡化模型中加以說明,並以此釋清許多初學者對c 中new操作符與多維陣...