c++中INT 和INT &返回有什么区别 具体点啊
5个回答
2016-01-28 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注
展开全部
举例说明:
int set()
{
return a;
}
此时生成的是变量a的一个拷贝,即生成了一个临时变量,当这个变量使用完毕之后,变量就被销毁了,所以这种返回不能用作左值运算,如:set() = 5;这是不正确的。
int& set()
{
return a;
}
在第二个例子中,返回的是引用,那么,就相当于返回的是变量a的别名,就可以对该变量操作,如赋值等等。set() = 5;是正确的。
但是在引用返回时得注意一个问题,就是不能返回局部变量的引用,如:
int& set()
{
int a;
return a;
}
此时就会调用出错,因为a是临时变量,函数结束是就自动销毁了,不能再创建别名了。但是将int & 改成int就可以了。
int set()
{
return a;
}
此时生成的是变量a的一个拷贝,即生成了一个临时变量,当这个变量使用完毕之后,变量就被销毁了,所以这种返回不能用作左值运算,如:set() = 5;这是不正确的。
int& set()
{
return a;
}
在第二个例子中,返回的是引用,那么,就相当于返回的是变量a的别名,就可以对该变量操作,如赋值等等。set() = 5;是正确的。
但是在引用返回时得注意一个问题,就是不能返回局部变量的引用,如:
int& set()
{
int a;
return a;
}
此时就会调用出错,因为a是临时变量,函数结束是就自动销毁了,不能再创建别名了。但是将int & 改成int就可以了。
2013-12-04
展开全部
C语言系列都是 Case Sensitive (区分大小写)的,不知道你到底是问int还是INT
一,如果你问的是int
int是声明整形变量的KeyWord
int &是别名,一般用在函数的 list of parameter 中,表示对int型变量的引用, 如
returntype method(int &a,int &b);
还有下面的情况
int a = 15;
int &b=a; 既a与b指向同一个变量,指向同一个内存地址, 对a 和b进行任何操作的结果都相同
二,如果你问的是INT
INT 估计是个Macro ( #define INT int) 其实就是int
INT & 同上
一,如果你问的是int
int是声明整形变量的KeyWord
int &是别名,一般用在函数的 list of parameter 中,表示对int型变量的引用, 如
returntype method(int &a,int &b);
还有下面的情况
int a = 15;
int &b=a; 既a与b指向同一个变量,指向同一个内存地址, 对a 和b进行任何操作的结果都相同
二,如果你问的是INT
INT 估计是个Macro ( #define INT int) 其实就是int
INT & 同上
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-04
展开全部
返回int 其实返回的是一个不可修改临时的副本
返回int& 返回的是函数里面那个实际的变量 如果你的返回进行修改(当然你不能对返回赋值给其他变量过 除非是引用) 那会反应到函数里面
#include <iostream>
using namespace std;
int &fun1(int &b)
{
return b;
}
int fun2(int &b)
{
return b;
}
int main(void)
{
int a = 10;
int b = 10;
cout << "a = " << a << endl;
fun1(a) = 20;
cout << "a = " << a << endl; // 反应出修改
cout << "b = " << b << endl;
// fun2(b) = 20; 不能这样做
cout << "b = " << b << endl;
getchar();
return 0;
}
返回int& 返回的是函数里面那个实际的变量 如果你的返回进行修改(当然你不能对返回赋值给其他变量过 除非是引用) 那会反应到函数里面
#include <iostream>
using namespace std;
int &fun1(int &b)
{
return b;
}
int fun2(int &b)
{
return b;
}
int main(void)
{
int a = 10;
int b = 10;
cout << "a = " << a << endl;
fun1(a) = 20;
cout << "a = " << a << endl; // 反应出修改
cout << "b = " << b << endl;
// fun2(b) = 20; 不能这样做
cout << "b = " << b << endl;
getchar();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-11-11
展开全部
int max(int a, int b) //返回的是值
{
return (a > b) ? a : b;
}
int &max(int &a, int &b) //返回的是实参的引用,就是实参本身
{
return (a > b) ? a : b;
}
{
return (a > b) ? a : b;
}
int &max(int &a, int &b) //返回的是实参的引用,就是实参本身
{
return (a > b) ? a : b;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-12-04
展开全部
int 类型返回的是数据值
int &类型返回的是数据的内存地址
int &类型返回的是数据的内存地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询