在C語言中可以用二維數(shù)組作為實參或者形參。
10年積累的網(wǎng)站制作、成都網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有友好免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
void fun(char ** str);char a[][10]={the quick,brown,fox};fun(a);不能向子函數(shù)傳遞一個數(shù)組,但是可以用數(shù)組指針實現(xiàn)傳遞,一維數(shù)組一個星號,二維數(shù)組兩個星號,三維數(shù)組三個星號。。
C/C++中,二維數(shù)組的第一維的每一個元素都是一維數(shù)組。所以,用指向一維數(shù)組的指針或用第一維維數(shù)空缺的二維數(shù)組作為函數(shù)的形式參數(shù)都能達到目的。
實參:a[x], a[y]。你在函數(shù)中寫一個循環(huán)10次的for,借助一個中間變量,可以將a[x]和a[y]指向的內(nèi)容(即10個整型值)互換。函數(shù)聲明時忽略數(shù)組維數(shù),所以形參中不需要指出100或者10這幾個數(shù)字的。
不可能達到目的。因為C語言中沒有引用這類型,C++才有。另,C/C++都不支持傳遞數(shù)組,只能傳遞數(shù)組的首元素或行指針,所以即使是C++,也只能傳遞數(shù)組指針的引用,而不可能傳遞數(shù)組的引用,因為數(shù)組沒有引用。
數(shù)組名的本質(zhì)是地址,也就是指針,如果要讓數(shù)組名作為形參,必須寫成(int array[])的形式,或者(int * array)。
也就是說,在函數(shù)的形參列表里指定數(shù)組的成員個數(shù)是沒有意義的,所以,你傳入的實參究竟是比10多還是比10少對于調(diào)用函數(shù)而言都是合法的。
C編譯對 形參 數(shù)組 大小 不做檢查,只是將實 參數(shù) 組的首地址傳給形參數(shù)組,因此,實參 不論多大都不會出現(xiàn)形參溢出。在 定義 形參時可以不指定大小,而只在 后面 加方 括弧 。
形參使用指向數(shù)組的指針,實參直接用數(shù)組名。
C/C++中,二維數(shù)組的第一維的每一個元素都是一維數(shù)組。所以,用指向一維數(shù)組的指針或用第一維維數(shù)空缺的二維數(shù)組作為函數(shù)的形式參數(shù)都能達到目的。
下面例子,作為 指針傳遞 和 行指針傳遞。
二位數(shù)組傳參數(shù)的時候,列坐標必須是確定的,不然數(shù)組尋址的指針操作無法進行,如果一定要動態(tài)的行列數(shù),那就用一位數(shù)組模擬。
例如下面這個 int fun(int a[2][3],int n);或者 int fun(int a[][3],int n);要指出列數(shù)是多少,行數(shù)寫不寫都一樣,行數(shù)要通過n進行傳遞。
對函數(shù)內(nèi)的相應(yīng)操作改為指針操作即可。通常情況下,對于一個系統(tǒng)設(shè)計而言,其輸入輸出是分開的,也即在2個函數(shù)中,從系統(tǒng)分析而言,建議分開。當然,就測試而言,是可以的。