C C 二維陣列

2022-05-19 04:06:13 字數 706 閱讀 4129

已知在c/c++中當陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標。

1、二維陣列的概念

在c語言中,二維陣列實際上是一種特殊的一維陣列,它的每個元素也是乙個一維陣列。因此,二維陣列下標形式正確寫法如下:int arrays[i][j]。

2、二維陣列作為函式引數(傳遞陣列時必須讓編譯器知道陣列最後一維的大小,例如二維陣列是列)

規定:如果將二維陣列作為引數傳遞給函式,那麼在函式的引數宣告中必須指明陣列的列數(否則編譯器無法獲得最小元素的位址,因為編譯器不知道列的跨度是多少就無法精確的對二維陣列進行分行),陣列的行數沒有太大關係,可以指定也可以不指定。因為函式呼叫時傳遞的是乙個指標,它指向由行向量夠成的一維陣列。因此二維陣列作為函式引數正確寫法如下所示:   

void func(int array[3][10]);

void func(int array[ ][10]);

二維陣列指標的定義:

char (* p_raw)[8];

因為陣列的行數無關緊要,所以還可以寫成如下形式:

void func(int (*array)[10]);注意*array需要用括號括起來。

摘自:

C C 二維陣列總結

先說在前面,一般的我們說的c c 中的二維陣列是定義在棧中的二維陣列。比如定義了乙個array 3 4 那就指的是定義了乙個三行四列的矩陣形狀的二維陣列,如下圖所示。這樣的矩陣在記憶體中是以箭頭右邊的方式存放的,也就是說實際上我們定義的二維陣列在記憶體中仍然像是一維陣列那樣連續儲存的。可以想象為把乙...

C C 函式傳遞二維陣列

目錄 函式引數傳遞二維陣列的問題 解決方案 1.傳遞第二維和更高維的大小 2.根據陣列的儲存原理把二位陣列當作一維陣列來操作 降維處理 將二維陣列當作引數的時候,必須指明所有維數大小或者省略第一維的,但是不能省略第二維或者更高維的大小,這是由編譯器原理限制的。在學編譯原理的時候知道編譯器是這樣處理陣...

c c 動態申請一維,二維陣列

指標變數名 new 型別名 下標表示式 下標表示式 不是常量表示式,即它的值不必在編譯時確定,可以在執行時確定。這就是堆的乙個非常顯著的特點,有的時候程式設計師本身都不知道要申請能夠多少記憶體的時候,堆就變的格外有用。1.動態申請一維陣列 int p new int n if p null retu...