什麼是值傳遞和引用傳遞

 

值傳遞

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

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

 

如圖:spa

 

 

 


 

引用傳遞

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

 

#include<stdio.h>
void fun(int* num)
{

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

 

 如圖:對象

其實時將地址的值複製給num。blog

 

總結的一句話:get

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

相關文章
相關標籤/搜索