二维数组传递参数
????先開始寫這個(gè)小程序的時(shí)候我直接傳遞的是一個(gè)二維指針,然后發(fā)現(xiàn)編譯跟鏈接都沒有問題,但是運(yùn)行的時(shí)候報(bào)了內(nèi)存錯(cuò)誤,經(jīng)過查詢才知道二維數(shù)組傳參不能直接用二維指針定義
????二維數(shù)組傳遞參數(shù)一般有三種方法
????????1.直接傳遞二維數(shù)組如“int a[][10]”(必須標(biāo)注數(shù)組第二維的值)。
????????2.二維數(shù)組第一維用指針代替“int (*a)[3]”。
????????3.直接傳遞過去一個(gè)一維指針,然后進(jìn)行強(qiáng)制類型轉(zhuǎn)換“int* a”。
(畢竟是小白,解釋不清楚為什么,有什么不對的希望大神指正)
例如:二維數(shù)組中的查找,楊氏矩陣
題目:
在一個(gè)二維數(shù)組中,每行都按照從左到右的遞增的順序排序。每列都按照從上到下遞增的順序排序。請完成一個(gè)函數(shù),輸入這樣的一個(gè)數(shù)組和一個(gè)數(shù),判斷數(shù)組中是否包含這個(gè)數(shù)。
例如:
二維數(shù)組
1 2 3
4 5 6
7 8 9
查找數(shù)字7.
代碼語言如下
int?search1_int(int?*arr[3],?int?num) {int?high?=?3;int?wide?=?3;for?(int?i?=?0;?i?<?high;?i++){for?(int?j?=?0;?j?<?wide;?j++){if?(arr[i][j]?==?num)return?1;}}return?0;} int?main() {int?arr[][3]?=?{?{1,2,3},{4,5,6},?{7,8,9}?};int?high=sizeof(arr)?/?sizeof(arr[0]);int?wide=sizeof(arr)?/?high;printf("%d\n",?search1_int(arr,?7));system("pause");return?0;}轉(zhuǎn)載于:https://blog.51cto.com/10743407/1709823
總結(jié)
- 上一篇: Nginx + Apache 公用 80
- 下一篇: IO之StringIO和BytesIO