在C語言中可以用二維數(shù)組作為實參或者形參。
成都創(chuàng)新互聯(lián)長期為上1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為陽高企業(yè)提供專業(yè)的做網(wǎng)站、成都網(wǎng)站建設(shè),陽高網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。
二維數(shù)組傳遞給函數(shù)的時候,有兩種方式,一種是a[][6],一種是(*a)[6],這里的6是不能省略的,不然編譯器不知道如何通過加多少來偏移這個指向數(shù)組的指針。
name*)[size])\x0d\x0a \x0d\x0atype是你要定義的類型,fun是函數(shù)名,name是在函數(shù)中二維數(shù)組的名字,\x0d\x0asize是二維數(shù)組第2維的長度。\x0d\x0a這樣調(diào)用這個函數(shù)只需要把二維數(shù)組函數(shù)名傳遞就可以了。
屬于地址傳遞,在函數(shù)里修改的話,將直接影響調(diào)用方的數(shù)值。這是因為數(shù)組名代表這個數(shù)組的首地址,不過是靜態(tài)不可更改的而已。在函數(shù)里用引用[i]下標(biāo)時,就是找到這個數(shù)組第i號元素的地址進行修改的。所以是第于是地址傳遞。
不可能達到目的。因為C語言中沒有引用這類型,C++才有。另,C/C++都不支持傳遞數(shù)組,只能傳遞數(shù)組的首元素或行指針,所以即使是C++,也只能傳遞數(shù)組指針的引用,而不可能傳遞數(shù)組的引用,因為數(shù)組沒有引用。
屬于地址傳遞,在函數(shù)里修改的話,將直接影響調(diào)用方的數(shù)值。這是因為數(shù)組名代表這個數(shù)組的首地址,不過是靜態(tài)不可更改的而已。在函數(shù)里用引用[i]下標(biāo)時,就是找到這個數(shù)組第i號元素的地址進行修改的。所以是第于是地址傳遞。
數(shù)組名就是數(shù)組的首地址。因此在數(shù)組名作函數(shù)參數(shù)時所進行的傳送只是地址的傳送, 也就是說把實參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址之后,也就等于有了實在的數(shù)組。
在C語言中可以用二維數(shù)組作為實參或者形參。
void func(int array[10])void func(int array[])void func(int *array)所以以上三種函數(shù)聲明完全等同。實際情況是,數(shù)組做參數(shù),完全無法按值傳遞。這是由C/C++函數(shù)的實現(xiàn)機制決定的。
因為數(shù)組在內(nèi)存中是一塊連續(xù)的內(nèi)存,只要將該數(shù)組的首地址傳進去,當(dāng)然就可以訪問整個數(shù)組了。值得注意的是,由于只傳了首地址,函數(shù)不知道數(shù)組的維數(shù),所以還得把數(shù)組的維數(shù)傳進去,那就可以完全操作該數(shù)組了。
name*)[size])\x0d\x0a \x0d\x0atype是你要定義的類型,fun是函數(shù)名,name是在函數(shù)中二維數(shù)組的名字,\x0d\x0asize是二維數(shù)組第2維的長度。\x0d\x0a這樣調(diào)用這個函數(shù)只需要把二維數(shù)組函數(shù)名傳遞就可以了。
看你的代碼。你問題并不在數(shù)組傳入。你函數(shù)mymd5接收password數(shù)組,mymd5的password數(shù)組變量和外部函數(shù)的password地址相同,所以改變其中外部函數(shù)的數(shù)組也改變。
方法:把最大值、最小值分別定義成2個全局變量max、min,在用戶自定義函數(shù)中把求出來的最大值與最小值分別賦給全局變量max、min。函數(shù)調(diào)用完畢后全局變量的max、min值即保存了函數(shù)要求返回的值。
辦法有二: 函數(shù)內(nèi)部新數(shù)組定義為static,這樣可以直接把這個數(shù)組返回出來; 在函數(shù)內(nèi)部把新數(shù)組的內(nèi)容拷貝到外部數(shù)組里。
在C語言中,無法直接返回一個數(shù)組,但是可以通過返回對應(yīng)類型指針的方式,返回數(shù)組。在大多數(shù)情況下,一維數(shù)組和一維指針是可以通用的。比如,定義一個函數(shù),申請一定長度的整型動態(tài)數(shù)組,其長度用參數(shù)傳入,并將結(jié)果返回。