題目:定義乙個函式,使用二維陣列作為傳入引數,在主函式中輸入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 ...