實(shí)參和形參的傳遞單向 C語(yǔ)言形參和實(shí)參,傳值調(diào)用和引用調(diào)用的區(qū)別?
C語(yǔ)言形參和實(shí)參,傳值調(diào)用和引用調(diào)用的區(qū)別?形式參數(shù)和實(shí)際參數(shù):int a(int x){//這個(gè)x是形式參數(shù),它是您定義的變量名…]}int main(){int Y=5;a(Y)//特定變量Y是實(shí)
C語(yǔ)言形參和實(shí)參,傳值調(diào)用和引用調(diào)用的區(qū)別?
形式參數(shù)和實(shí)際參數(shù):
int a(int x){//這個(gè)x是形式參數(shù),它是您定義的變量名
…]}
int main(){
int Y=5;
a(Y)//特定變量Y是實(shí)際參數(shù)
a(z)//z也是實(shí)際參數(shù),它是實(shí)值
}
值傳遞調(diào)用和引用調(diào)用:兩者的區(qū)別在于,傳遞引用時(shí),實(shí)際傳遞給函數(shù)的參數(shù)是對(duì)實(shí)際參數(shù)的引用,而不僅僅是將值傳遞給函數(shù)。在傳遞引用時(shí),形式參數(shù)和實(shí)際參數(shù)是相同的變量,即它們使用相同的內(nèi)存空間和地址。傳輸值時(shí),它們的地址不同;
2。在傳輸引用時(shí),沒(méi)有新的變量,因此類(lèi)對(duì)象參數(shù)不會(huì)被構(gòu)造或破壞。如果是值轉(zhuǎn)移調(diào)用,則在調(diào)用時(shí)構(gòu)造,退出時(shí)銷(xiāo)毀;
3。因?yàn)樵紖?shù)的地址是用來(lái)引用的,所以引用參數(shù)值的修改會(huì)在退出函數(shù)后反映在主函數(shù)中,通過(guò)值轉(zhuǎn)移調(diào)用修改參數(shù)不會(huì)影響主函數(shù)。
在c語(yǔ)言中,調(diào)用函數(shù)時(shí),形參與實(shí)參可以共用存儲(chǔ)單元嗎?
是-形式參數(shù)和實(shí)際參數(shù)可以完全相同。在程序執(zhí)行過(guò)程中,實(shí)際參數(shù)的范圍是主函數(shù),只要程序不停止,實(shí)際參數(shù)總是有效的;形式參數(shù)是定義函數(shù),是引入?yún)?shù),系統(tǒng)只在調(diào)用函數(shù)時(shí)分配臨時(shí)內(nèi)存,在執(zhí)行自定義函數(shù)時(shí),將釋放形式參數(shù)的臨時(shí)存儲(chǔ)空間。因此,即使形式參數(shù)和實(shí)際參數(shù)的類(lèi)型和名稱(chēng)完全相同,系統(tǒng)也可以區(qū)分它們。也就是說(shuō),可以完全相同。注:解決這個(gè)問(wèn)題的關(guān)鍵是了解變量的范圍。
C語(yǔ)言規(guī)定,調(diào)用一個(gè)函數(shù)時(shí),實(shí)參變量和形參變量之間的數(shù)據(jù)傳遞方式是什么?
形式參數(shù)是函數(shù)定義中的一種占位符。實(shí)際參數(shù)是其中的實(shí)際變量值或常量。調(diào)用函數(shù)時(shí),實(shí)際參數(shù)值將自動(dòng)傳遞給形式參數(shù)變量。指針更復(fù)雜。是變量的地址。如果參數(shù)類(lèi)型是指針類(lèi)型,則必須傳遞參數(shù)變量的地址。當(dāng)然,在函數(shù)中也是對(duì)參數(shù)變量的間接引用。
例如
void f(int*P)//形式參數(shù)是指針型變量
下面是調(diào)用形式
f&A//調(diào)用函數(shù),實(shí)際參數(shù)是變量a的地址。