C C 語言陣列作為引數傳遞

2021-08-26 06:15:32 字數 546 閱讀 1708

#include

#include

#include

#define line 2

#define row 4

int array(char *szstr[row], int len)

return 0;

}int main()

;char* szstr[4]; //寫乙個指標,將陣列中的元素賦值給它

int i;

for (i = 0; i != 4; ++i)

array(szstr, 4); //這裡填寫什麼才會不報錯?,如果我錯了,請指出錯在**.

return 0;

} 這種方法確實沒有錯,而且非常直觀,

我想如果不通過第三個變數直接放到實參那裡不知道還有沒有其他的方法呢?

謝謝要麼修改函式為int array(char szstr[line][row], int len),要麼把char str[line][row]定義為char* str[row]

因為str是乙個陣列,是乙個const指標,要轉成*str必須要第三個引數

陣列作為函式引數傳遞

陣列有兩個特殊的性質。一是不能複製陣列 二是使用陣列名字時,陣列會自動轉化為指向其第乙個元素的指標。由於陣列不能複製,所以無法編寫使用陣列型別形參的函式,因為陣列會被自動轉化為指標。一 一維陣列 1.三種定義形式 void printvalues int void printvalues int v...

陣列作為函式引數傳遞

重點 在c中,陣列是不能作為引數進行傳遞的,但是可以通過傳遞指向陣列初始元素的指標,使得在函式內部運算元組成為可能。在函式這一側,可以通過array i 引用陣列的內容。why?本質上array i 不過是 array i 的語法糖。include void func int array,int s...

使用陣列作為引數傳遞

如果乙個函式以一維陣列為引數,我們可以這樣宣告這個函式 void func int a void func int a void func int a 3 實際上,這三種形式是等價的,在使用陣列做引數時,編譯器會自動將陣列名轉換為指向陣列第乙個元素的指標,為什麼呢?這要從引數的傳遞方式說起,引數有三...