因?yàn)閿?shù)組在內(nèi)存中是一塊連續(xù)的內(nèi)存,只要將該數(shù)組的首地址傳進(jìn)去,當(dāng)然就可以訪問(wèn)整個(gè)數(shù)組了。值得注意的是,由于只傳了首地址,函數(shù)不知道數(shù)組的維數(shù),所以還得把數(shù)組的維數(shù)傳進(jìn)去,那就可以完全操作該數(shù)組了。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、前進(jìn)ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的前進(jìn)網(wǎng)站制作公司
數(shù)組作為參數(shù)是按地址傳遞的 數(shù)組名就是數(shù)組的首地址。因此在數(shù)組名作函數(shù)參數(shù)時(shí)所進(jìn)行的傳送只是地址的傳送, 也就是說(shuō)把實(shí)參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址之后,也就等于有了實(shí)在的數(shù)組。
傳數(shù)組給一個(gè)函數(shù),數(shù)組類(lèi)型自動(dòng)轉(zhuǎn)換為指針類(lèi)型,因而傳的實(shí)際是地址。
若有數(shù)組:int Array[10];函數(shù)為:void function(int Array[10]);則傳遞參數(shù)的方式為:function(Array);其實(shí)第二種方式與第一種方式?jīng)]什么兩樣的。傳遞參數(shù)的方式都是傳址傳遞。
屬于地址傳遞,在函數(shù)里修改的話,將直接影響調(diào)用方的數(shù)值。這是因?yàn)閿?shù)組名代表這個(gè)數(shù)組的首地址,不過(guò)是靜態(tài)不可更改的而已。在函數(shù)里用引用[i]下標(biāo)時(shí),就是找到這個(gè)數(shù)組第i號(hào)元素的地址進(jìn)行修改的。所以是第于是地址傳遞。
不需要,它只是為了讓你更好理解一點(diǎn),說(shuō)白了返回值就是一個(gè)int變量而已。
在c語(yǔ)言中,進(jìn)行值傳遞的函數(shù)是無(wú)法改變實(shí)參的值的。如果你想通過(guò)函數(shù)改變實(shí)參值的話,建議使用地址傳遞,即你傳遞給形參的是地址,形參改變?cè)摰刂分赶虻闹担瑥亩鴮?shí)現(xiàn)達(dá)到改變實(shí)參值的目的。
數(shù)組名就是一個(gè)指針常量,傳入函數(shù)的實(shí)際上是內(nèi)存空間的首地址,在多進(jìn)程(或多線程)運(yùn)行環(huán)境并且共同操作同一塊內(nèi)存空間的情況下,會(huì)出現(xiàn)題目所說(shuō)的情況,答案是肯定的,會(huì)受影響。
但是如果原變量是數(shù)組,好像不用指針也能完成改變。
1、因?yàn)閿?shù)組在內(nèi)存中是一塊連續(xù)的內(nèi)存,只要將該數(shù)組的首地址傳進(jìn)去,當(dāng)然就可以訪問(wèn)整個(gè)數(shù)組了。值得注意的是,由于只傳了首地址,函數(shù)不知道數(shù)組的維數(shù),所以還得把數(shù)組的維數(shù)傳進(jìn)去,那就可以完全操作該數(shù)組了。
2、也不會(huì)影響到實(shí)參的值。(2)引用傳遞:與(1)相反,即會(huì)影響實(shí)參的值。如何區(qū)分它們呢?實(shí)際上,通常在定義函數(shù)時(shí),如果參數(shù)為數(shù)組、指針或引用類(lèi)型時(shí),函數(shù)采用引用傳遞,否則采用值傳遞。
3、傳數(shù)組給一個(gè)函數(shù),數(shù)組類(lèi)型自動(dòng)轉(zhuǎn)換為指針類(lèi)型,因而傳的實(shí)際是地址。void func(int array[10])void func(int array[])void func(int *array)所以以上三種函數(shù)聲明完全等同。實(shí)際情況是,數(shù)組做參數(shù),完全無(wú)法按值傳遞。
4、因此在數(shù)組名作函數(shù)參數(shù)時(shí)所進(jìn)行的傳送只是地址的傳送, 也就是說(shuō)把實(shí)參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址之后,也就等于有了實(shí)在的數(shù)組。實(shí)際上是形參數(shù)組和實(shí)參數(shù)組為同一數(shù)組,共同擁有一段內(nèi)存空間。
5、看你的代碼。你問(wèn)題并不在數(shù)組傳入。你函數(shù)mymd5接收password數(shù)組,mymd5的password數(shù)組變量和外部函數(shù)的password地址相同,所以改變其中外部函數(shù)的數(shù)組也改變。
1、實(shí)際上,main函數(shù)的參數(shù)值是從操作系統(tǒng)命令行上獲得的。當(dāng)要運(yùn)行一個(gè)可執(zhí)行文件時(shí),在DOS提示符下鍵入文件名,再輸入實(shí)際參數(shù)即可把這些實(shí)參傳送到main的形參中去。
2、在主函數(shù)中,將實(shí)參a,b的值傳遞給被調(diào)用函數(shù)中的形參x,y,即將a,b分別代入x,y中計(jì)算,即達(dá)到了調(diào)用的目的。
3、常用兩個(gè)辦法:一是把x聲明為全局變量,這樣哪個(gè)函數(shù)都能用。
文章名稱:c語(yǔ)言函數(shù)傳入函數(shù) c語(yǔ)言函數(shù)傳遞
文章位置:http://chinadenli.net/article25/dioscji.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、商城網(wǎng)站、全網(wǎng)營(yíng)銷(xiāo)推廣、網(wǎng)站收錄、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容