您的位置:首页 > 其它

值传递与引用传递例子

2011-12-14 09:54 127 查看
int val()
{
int i = 1;
return i;
}
int & ref()
{
int i = 1;
return i;
}

int main()
{
int vv = val();
int & rv = val();
int vr = ref();
int & rr = ref();
}

区别和问题:
int vv = val(); // int <= int; 没有问题,值传递
int & rv = val(); // int& <= int;或int& <= const int&; 编译错误
int vr = ref(); // int <= int&; 引用为普通变量赋值,没有问题。但是ref()返回退栈后的变量,有可能造成数据失效。
int & rr = ref(); // int& <= int&; 赋值语法正确,但执行后rr引用退栈后的变量,极易造成访问冲突,隐患最大。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: