今天遇到一個(gè)C語言實(shí)現(xiàn)判斷任意大小矩陣(二維數(shù)組)是否為單位矩陣的題目,要求第一個(gè)參數(shù)為整型指針,第二個(gè)參數(shù)為矩陣大小。
分析: 首先想到的用一級(jí)指針當(dāng)數(shù)組用,于是很快得到了一個(gè)將一級(jí)指針做形參,用一維數(shù)組名傳參的解決方案1。
解決方案1:
……
優(yōu)點(diǎn): 思路簡單,用兩級(jí)循環(huán)實(shí)現(xiàn)
缺點(diǎn): 需要把二維數(shù)組轉(zhuǎn)化為一維數(shù)組
我是在什么樣的情況下,得到上述解決方案的呢?
沒有理解二維數(shù)組和一維數(shù)組的存儲(chǔ)規(guī)律的聯(lián)系的情況下,得到了上述一個(gè)不成熟的方案。
在度娘的幫助下,搞清楚了二維數(shù)組傳參的技巧,以及聯(lián)想到二維數(shù)組其實(shí)也是按行順序存儲(chǔ)的。于是,BinGo, 用二維數(shù)組首元素的地址做形參,于是上面的函數(shù)體代碼,絲毫不用改,全新的解決方案應(yīng)運(yùn)而生。
解決方案2:
……