c語言 函式傳遞陣列問題

2021-10-06 16:28:12 字數 658 閱讀 9669

題目:定義乙個函式,使用二維陣列作為傳入引數,在主函式中輸入4×4的二維陣列,呼叫已定義的函式,把該矩陣傳入,在主函式中輸出結果。函式功能:使二維陣列中兩條對角線上的元素均為1,其餘元素均為0。

解:

#include

#include

intdiagonal_assignment

(int a[4]

[4])

else}}

return a;

}void

main()

}}printf

("使二維陣列中兩條對角線上的元素均為1,其餘元素均為 0後的陣列:\n");

diagonal_assignment

(a);

for(i=

0; i<

4; i++)}

}system

("pause");

}

注意:main函式中的傳入實參a與函式diagonal_assignment的形參共用乙個記憶體單元,而陣列在函式中傳遞的形式是它本身的首位址,因此函式diagonal_assignment只需直接返回修改後的a的位址,然後在main函式中呼叫該函式,就可以實現陣列a的修改。

推薦文章:

C語言 陣列引數傳遞問題

陣列傳遞引數的話,如果直接傳指標過去。對陣列引數的操作會改變原始變數的值。如果不想影響原始變數的話,需要在函式裡面定義新的區域性陣列變數。賦值給區域性陣列變數,對區域性陣列變數進行操作。include include include int setarray char array int setar...

C 中函式傳遞陣列的問題

本人目前在自學c 在學習結構體時碰到了乙個小問題,先來看問題 案例描述 設計乙個英雄的結構體,包括成員姓名,年齡,性別 建立結構體陣列,陣列中存放5名英雄。通過氣泡排序的演算法,將陣列中的英雄按照年齡進行公升序排序,最終列印排序後的結果。五名英雄資訊如下 下面是我第一次寫的 我在sort hero函...

c語言 函式 用指標傳遞引數 問題

問題1 你是把變數傳給了函式,還是把位址傳給了函式?例 include stdio.h include stdlib.h include string h void oxx char dest void oxx2 char dest intmain 同樣是傳了指標給函式,對指標進行了不同的操作 1 ...