2019独角兽企业重金招聘Python工程师标准>>>
作为一个新手的程序猿,前两天被问到值传递和引用传递的区别的时候,一脸茫然,不知所措。在查阅相关资料以后,决定记录下来。
值传递
在使用的时候,只是将变量的值传递给了函数,函数在处理改值的时候,只是在函数内部对值进行操作和改变,但是,函数运行完之后,并不会改变传递过去的值。相当于把变量复制了一份过去。
引用传递
在使用的时候,将变量的内存地址也传递过去,在对变量进行操作的时候,会改变变量的地址。函数运行完成后,变量的值会发生变化。
下面运行实例:
值传递:
#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;
}
以上为值传递的实例,
运行结果:
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;
}
以上为引用传递的实例, 运行结果:
11
11