linux C 二維陣列 作為函式引數

2021-09-10 09:22:35 字數 763 閱讀 9899

c語言中怎麼用二維陣列作為函式引數

可以用二維陣列名作為實參或者形參,在被呼叫函式中對形引數組定義時可以指定所有維數的大小,也可以省略第一維的大**明,如:

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

void func(int array[10]);

二者都是合法而且等價,但是不能把第二維或者更高維的大小省略,如下面的定義是不合法的:

void func(int array);

因為從實參傳遞來的是陣列的起始位址,在記憶體中按陣列排列規則存放(按行存放),而並不區分行和列,如果在形參中不說明列數,則系統無法決定應為多少行多 少列,不能只指定一維而不指定第二維,下面寫法是錯誤的:

void func(int array[3]);實參陣列維數可以大於形引數組,例如實參陣列定義為:

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

而形引數組定義為:

int array[5][10];

這時形引數組只取實參陣列的一部分,其餘部分不起作用。

對於陣列 int p[m][n];

如果要取p[i][j]的值(i>=0 && i2

二維陣列作為函式引數,實參可以直接使用二維陣列名,在被呼叫函式中對形引數組定義可以指定所有維數的大小,也可以省略第一維的大**明,如:

它們是合法且等價,也可以使用如下形式:

(稍後 補充)

二維陣列作為形參

以下是網上摘抄的一段 首先,我引用了譚浩強先生編著的 c程式設計 上面的一節原文,它簡要介紹了如何將二維陣列作為引數傳遞,原文如下 略有改變,請原諒 原文開始 可以用二維陣列名作為實參或者形參,在被呼叫函式中對形引數組定義時可以指定所有維數的大小,也可以省略第一維的大 明,如 void func i...

二維陣列 作為函式引數

前言 今天在實現裝配線排程程式時候,用到了二維陣列,並將其作為函式的引數。在寫程式的時候,遇到一些問題,即二維陣列做函式的引數應該如何正確表示。我寫程式的錯誤如下程式所示 1 include 2 void print int a 3 3 67intmain 8 10print a 11return0...

二維陣列作為形參的傳遞

include include includeusing namespace std void func1 int arr 5 傳遞陣列,需生命陣列第二維的大小 int test int a 3 error cannot convert int 3 to int for argument 1 to ...