c++中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就可以了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  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 & 同上本回答被网友采纳
第2个回答  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;
}
第3个回答  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;
}
第4个回答  2013-12-04
int 类型返回的是数据值
int &类型返回的是数据的内存地址
相似回答