1. 程式人生 > >什麽是值傳遞和引用傳遞

什麽是值傳遞和引用傳遞

target 函數 ges alt %d item mage 什麽 修改

值傳遞

值傳遞是指在調用函數時將實際參數復制一份傳遞到函數中,這樣在函數中如果對參數進行修改,將不會影響到實際參數

#include<stdio.h>
void fun(int num)
{
num=0; //修改參數
}
int main()
{
int a=1;
fun(a); //調用fun函數
printf("%d",a);//輸出變量,變量的值沒改變
return 0;
}

如圖:

技術分享


引用傳遞

引用傳遞是指在調用函數時將實際參數的地址傳遞到函數中,那麽在函數中對參數所進行的修改,將影響到實際參數。

#include<stdio.h>
void
fun(int* num) { *num= 0; //修改參數 } int main() { int* a ; *a = 1; fun(a); //調用fun函數 printf("%d",*a);//輸出變量,變量的值已改變 return 0; }

如圖:

技術分享

其實時將地址的值復制給num。

總結的一句話:


如果參數是基本類型,傳遞的是基本類型的字面量值的拷貝。
如果參數是引用類型,傳遞的是該參量所引用的對象在堆中地址值的拷貝。

什麽是值傳遞和引用傳遞