值和引用

做爲一個新手的程序猿,前兩天被問到值傳遞和引用傳遞的區別的時候,一臉茫然,不知所措。在查閱相關資料之後,決定記錄下來。函數

值傳遞

在使用的時候,只是將變量的值傳遞給了函數,函數在處理改值的時候,只是在函數內部對值進行操做和改變,可是,函數運行完以後,並不會改變傳遞過去的值。至關於把變量複製了一份過去。code

引用傳遞

在使用的時候,將變量的內存地址也傳遞過去,在對變量進行操做的時候,會改變變量的地址。函數運行完成後,變量的值會發生變化。內存

下面運行實例:

值傳遞:

#include<stdio.h>
void testn(int a){
	a++;
	printf("%d\n",a);
}
int main(){
 int a=10;
 testn(a);
 printf("%d\n",a);
 return 0;
}

以上爲值傳遞的實例,
運行結果:io

11  
10
  • 能夠看出,在調用函數以後,函數內部的值發生了改變,可是,函數結束之後,輸出值仍然是最初定義的值。

引用傳遞:

#include<stdio.h>
void testn(int& a){
	a++;
	printf("%d\n",a);
}
int main(){
 int a=10;
testn(a);
 printf("%d\n",a);
 return 0;
}

以上爲引用傳遞的實例, 運行結果:test

11
11
相關文章
相關標籤/搜索