二維陣列 二級指標 引數傳遞

2021-10-23 17:48:53 字數 1088 閱讀 9585

指標陣列引數傳遞

二維陣列不能作為二級指標引數進行傳遞,無法強制轉換。即:

void

fun(

char

**p)

;char str[2]

[6]=

;fun

(str)

;

這樣的呼叫會出錯。

但是指標可以轉化為二級指標。如:

void

fun(

char

**p)

;char

*str[6]

=;fun(str)

;

這樣呼叫就ok。

陣列指標引數傳遞

下面這種情況,呼叫會出錯。

void

func

(int

**p)

;int ary[2]

[6];

func

(ary)

;

這種情況下,二維陣列不能轉化為二級指標。進行如下修改。

void

func

(int

(*p)[6

]);int ary[2]

[6];

func

(ary)

;

這樣呼叫正確。

通過上面的例子可以看出,二維陣列可以轉化為陣列指標,指標陣列可以轉化為二級指標。二維陣列名其實就是乙個陣列指標,指向的是陣列,因此二維陣列可以轉化為陣列指標。指標陣列,是乙個陣列,陣列元素的型別是指標,乙個是指向指標,一直是指向陣列,因為基本資料型別不是陣列指標,因此不可以進行轉化。而二級指標,是指向指標的指標,陣列指標名是指標,指向陣列元素,陣列元素也是指標,因此陣列指標是指向指標的指標,因此可以和二級指標進行轉化。

上面的轉化是針對預設轉化來說的。

陣列指標和指標陣列對應的關係應該如下:

int ary[2]

[6];

int(

*ary1)[6

];int*ary2[2]

;

二維陣列傳遞給二級指標

二維字元陣列與char 關係 收藏 陣列和指標聯絡很緊密,陣列名的含義至少有兩種含義 1.對應資料中的第乙個元素的位址,2.sizeof為陣列大小,而不是指標大小 注 c專家程式設計 中有詳細介紹 程式設計中,需要向某個函式傳遞乙個字串陣列。測試 如下 view plaincopy to clipb...

二維陣列 指標陣列 陣列指標 二級指標

include 指標陣列 array of pointers,即用於儲存指標的陣列,也就是陣列元素都是指標 陣列指標 a pointer to an array,即指向陣列的指標 int a 4 指標陣列 表示 陣列a中的元素都為int型指標 優先順序高於 元素表示 a i int a 4 陣列指標...

二維陣列與二級指標

今日在論壇上看到有人問到指標 級指標和二維陣列 我們知道char array abcdef array是陣列的首位址,那麼在二維陣列中array當然也是陣列的首位址,看看這個定義char array 3 怎麼知道的呢?定義這樣乙個陣列,在vc除錯視窗中 我們看到 array 0x64324234 a...