您的位置:首页 > 编程语言 > C语言/C++

值传递、引用传递、地址传递辨析

2017-06-18 14:46 323 查看

写在前面:

其实这是大一的知识,但是很久了也有一点淡忘,加上复习编译原理又捡起来看了看,写个简单的程序帮助理解吧。

值传递、引用传递、地址传递:

#include<iostream>
//值传递
int get_val(int arg){
arg+=1;
return arg;
}
//引用传递
int get(int &arg){
arg+=1;
return arg;
}
//地址传递
int get(int *arg){
*arg+=1;
return *arg;
}
//入口

int main(){
int a=0;
int b=0;
int c=0;
get(a);
std::cout<<" 引用传递 -->原变量"<<a<<std::endl;
get_val(b);
std::cout<<" 值传递 -->原变量"<<b<<std::endl;
get(*c);
std::cout<<" 地址传递 -->原变量"<<c<<std::endl;
}


程序输出:

引用传递 -->原变量1
值传递 -->原变量0
地址传递 -->原变量


解析:

值传递只是将变量地址中存放的值赋给了新开辟的局部变量。

引用传递,引用其实是变量的别名,就像 小明在学校叫 王小明,在家里叫明明一样,都指的是小明这个人。我在路上叫明明或者王小明他都会答应。 引用传递实际上是将原变量作为局部变量放入了函数中

地址传递是将原变量的地址作为参数传入函数,对地址的相关操作其实作用在原变量上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++