值和引用

谁说我不能喝 提交于 2020-02-28 21:22: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  
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
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!