傳值和傳址的區(qū)別 傳值調(diào)用和引用調(diào)用有什么區(qū)別?
傳值調(diào)用和引用調(diào)用有什么區(qū)別?傳值和傳地址的概念主要在于內(nèi)存指針上。但換種方法更容易理解。傳值:將傳遞的形參變量在內(nèi)存中做一個(gè)拷貝,然后傳遞給函數(shù),所以不管在函數(shù)中怎么變化都不會(huì)改變?cè)瓉?lái)的內(nèi)容。傳地址
傳值調(diào)用和引用調(diào)用有什么區(qū)別?
傳值和傳地址的概念主要在于內(nèi)存指針上。但換種方法更容易理解。
傳值:將傳遞的形參變量在內(nèi)存中做一個(gè)拷貝,然后傳遞給函數(shù),所以不管在函數(shù)中怎么變化都不會(huì)改變?cè)瓉?lái)的內(nèi)容。
傳地址(傳指針):將形參變量在內(nèi)存中的地址告訴函數(shù),所以在函數(shù)中的變化將影響原來(lái)的內(nèi)容
傳值調(diào)用和引用調(diào)用有什么區(qū)別?
引用可以直接對(duì)實(shí)參進(jìn)行操作,而且不用返回值 ,效率高 傳值調(diào)用有返回值時(shí) 只能返回一個(gè)值,有些時(shí)候不能滿(mǎn)足需要,而且會(huì)產(chǎn)生臨時(shí)對(duì)象,效率低一些。滿(mǎn)意請(qǐng)采納
C語(yǔ)言形參和實(shí)參,傳值調(diào)用和引用調(diào)用的區(qū)別?
形參與實(shí)參:
int a(int x){//這個(gè)x就是形參,就是你定義的變量名稱(chēng)
......
}
int main(){
int y=5;
a(y)//具體的變量y就是實(shí)參
a(z)//z也是實(shí)參,就是實(shí)實(shí)在在的值
}
傳值調(diào)用和引用調(diào)用:
二者的區(qū)別為,當(dāng)傳引用時(shí),實(shí)際傳到函數(shù)中的形參,是實(shí)際參數(shù)的一個(gè)引用,而不是僅傳遞值到函數(shù)中。具體的表現(xiàn)有以下幾條:
1、傳引用時(shí),形參和實(shí)參是同一個(gè)變量,即使用相同的內(nèi)存空間,二者有相同的地址。而傳值時(shí)二者地址不同;
2、傳引用時(shí),由于沒(méi)有新建變量,所以對(duì)于類(lèi)對(duì)象參數(shù),不會(huì)產(chǎn)生構(gòu)造和析構(gòu)。而如果是傳值調(diào)用,調(diào)用時(shí)會(huì)進(jìn)行構(gòu)造,退出函數(shù)時(shí)會(huì)進(jìn)行析構(gòu);
3、由于傳引用使用的是原本實(shí)參的地址,所以對(duì)引用參數(shù)值的修改,會(huì)在退出函數(shù)后體現(xiàn)在主調(diào)函數(shù)中,而傳值調(diào)用對(duì)參數(shù)的修改不會(huì)影響到主調(diào)函數(shù)。