C中陣列與函式

2021-07-09 05:23:27 字數 412 閱讀 8543

當初始化陣列時,用變數表示元素個數是無法用{}來初始化  可以直接使用 int arr[num];

當陣列作為函式的引數傳遞的時候,會丟失陣列的長度,無法在函式內部使用sizeof函式計算陣列長度 sizeof()在函式內部得到的永遠都是8?

當陣列作為函式的引數傳遞時,宣告的陣列並不是建立了這個陣列,而是宣告了乙個乙個儲存位址的指標變數。為形參傳遞值的時候,並不是講整個數字傳遞過去。而是將實參陣列的位址傳遞給了形參變數。這個指標變數在記憶體中永遠佔據8個長度。

所以當在函式內部修改形參的資料時 因為陣列傳遞的是指標,所以也會改變實參的值

解決方案:

當乙個函式的引數是陣列的時候,還要求提供乙個引數傳遞傳入的陣列長度

當引數是二維陣列時需要提供二維陣列的行數和列數(行數可以省略,列數必須要有,並且與實參的列數保持一致)

C 函式與陣列

函式的原型中對於形參的描述,可用elemtype xx int array,int n or elemtype xx int p,int n 在這裡陣列名和指標是同樣的意思,但在其他地方不一樣。使用方法,在main 中呼叫xx arry,n 傳陣列的首位址,並將陣列的大小傳輸進去,傳陣列大小是為了可...

c指標陣列與陣列指標與指標函式與函式指標筆記

include include typedef struct t ooxx t ooxx,pt ooxx 測試陣列指標 void test ooxx arrayp t ooxx p int num 測試指標陣列 void test ooxx parray t ooxx p,int num 測試函式指...

c 中陣列名與函式的區別

文章 引言 指標是c c 語言的特色,而陣列名與指標有太多的相似,甚至很多時候,陣列名可以作為指標使用。於是乎,很多程式 設計者就被搞糊塗了。而許多的大學老師,他們在c語言的教學過程中也錯誤得給學生講解 陣列名就是指標 很幸運,我的大學老師就是其中之一。時至今日,我日復一日地進行著c c 專案的 開...