(1)
成都創(chuàng)新互聯(lián)成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元淶源做網(wǎng)站,已為上家服務(wù),為淶源各地企業(yè)和個人服務(wù),聯(lián)系電話:028-86922220
里傳的是main里y的值,傳過去的x在函數(shù)b里只是個局部對象,影響不到main里的實(shí)參y
(2)
的實(shí)質(zhì)是傳遞了y數(shù)組的首地址,也就是y數(shù)組中唯一一個元素的地址,b函數(shù)里接受到x其實(shí)是main里y[0]的地址,所以x[0]
==
main里的y,傳給scanf的變量地址也就是main里y的地址,所以y接受到了b函數(shù)中scanf的輸入
2的實(shí)質(zhì)是傳遞變量的地址,然后通過地址修改實(shí)參,1則是傳遞變量本身的值
c里面如果想通過形參修改實(shí)參,只能使用2的方法
void
b(struct
a
x[
])
等價于
void
b(
struct
a*
x
)
函數(shù)實(shí)參與形參之間的數(shù)據(jù)傳遞方式是( 值傳遞)傳遞方式,在C語言中,數(shù)據(jù)傳遞方式有值傳遞和引用傳遞,值傳遞:傳值,實(shí)際是把實(shí)參的值賦值給行參,相當(dāng)于copy。
那么對行參的修改,不會影響實(shí)參的值 。引用傳遞: 實(shí)際是傳值的一種特殊方式,只是他傳遞的是地址,不是普通的賦值,那么傳地址以后,實(shí)參和行參都指向同一個對象,因此對形參的修改會影響到實(shí)參。
擴(kuò)展資料
傳值調(diào)用中,只使用了實(shí)參的值。傳值調(diào)用機(jī)制里,形參是一個局部變量,其初始值為相應(yīng)實(shí)參的值。在引用調(diào)用機(jī)制里,將實(shí)參的地址傳遞給形參,從表面上看是以實(shí)參變量取代形參,因此任何發(fā)生在形參上的改變實(shí)際上都發(fā)生在實(shí)參變量上。
引用傳遞是將變量的內(nèi)存地址傳遞給方法,方法操作變量時會找到保存在該地址的變量,對其進(jìn)行操作。會對原變量造成影響??梢詫⒁粋€變量通過引用傳遞給函數(shù),這樣該函數(shù)就可以修改其參數(shù)的值。
參考資料:百度百科—引用傳遞
數(shù)組作為參數(shù)是按地址傳遞的
數(shù)組名就是數(shù)組的首地址。因此在數(shù)組名作函數(shù)參數(shù)時所進(jìn)行的傳送只是地址的傳送, 也就是說把實(shí)參數(shù)組的首地址賦予形參數(shù)組名。形參數(shù)組名取得該首地址之后,也就等于有了實(shí)在的數(shù)組。實(shí)際上是形參數(shù)組和實(shí)參數(shù)組為同一數(shù)組,共同擁有一段內(nèi)存空間。