什麽是值傳遞和引用傳遞
阿新 • • 發佈:2017-10-17
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> voidfun(int* num) { *num= 0; //修改參數 } int main() { int* a ; *a = 1; fun(a); //調用fun函數 printf("%d",*a);//輸出變量,變量的值已改變 return 0; }
如圖:
其實時將地址的值復制給num。
總結的一句話:
如果參數是基本類型,傳遞的是基本類型的字面量值的拷貝。
如果參數是引用類型,傳遞的是該參量所引用的對象在堆中地址值的拷貝。
什麽是值傳遞和引用傳遞