关于const与临时变量与函数返回值
2014-02-20 16:12
260 查看
c++中函数的返回值是存储在临时变量中的
下面是个实验
如图,func2函数建立的引用不是func1形参x的引用,而是临时变量的引用
(这个引用比指针好用,因为你无法取得临时变量的地址,所以无法建立指向临时变量的指针)
所以说函数的返回值是存储在临时变量中的
const与函数返回值的类型有什么关系呢?
c++默认函数的返回值是const型
看下面:
const int x = 10;
int &y1= x;//错误
const int &y2 = x;.//正确,
由这个可知,const变量只能建立const引用,而无法建立普通引用
所以说,如果函数的返回值的临时变量如果是const类型的,那就无法建立该变量的普通引用
int func1(int x)
{
return x;
}
int func2(const int &xx)
{
}
int func3(int &x)
{
}
int main()
{
int x = 10;
func2( func1(x));
func3(func1(x));//错误
}
所以说函数的返回值的临时变量是const型的
下面是个实验
如图,func2函数建立的引用不是func1形参x的引用,而是临时变量的引用
(这个引用比指针好用,因为你无法取得临时变量的地址,所以无法建立指向临时变量的指针)
所以说函数的返回值是存储在临时变量中的
const与函数返回值的类型有什么关系呢?
c++默认函数的返回值是const型
看下面:
const int x = 10;
int &y1= x;//错误
const int &y2 = x;.//正确,
由这个可知,const变量只能建立const引用,而无法建立普通引用
所以说,如果函数的返回值的临时变量如果是const类型的,那就无法建立该变量的普通引用
int func1(int x)
{
return x;
}
int func2(const int &xx)
{
}
int func3(int &x)
{
}
int main()
{
int x = 10;
func2( func1(x));
func3(func1(x));//错误
}
所以说函数的返回值的临时变量是const型的
相关文章推荐
- 关于 类成员函数返回指向const临时变量的引用
- c++ const: const 变量, const 输入参数, const 返回值, const 成员函数
- 【转载】const用法详解,如何修饰变量,返回值以及成员函数
- 关于android webview读取js全局变量或者函数返回值
- [C/C++] const 详解(修饰变量、输入参数、返回值、成员函数)
- const 详解(修饰变量、输入参数、返回值、成员函数)
- [C/C++] const 详解(修饰变量、输入参数、返回值、成员函数)
- 函数返回值返回临时变量之解惑
- const 详解(修饰变量、输入参数、返回值、成员函数)
- 作为函数参数的临时变量的引用必须是const的
- C++中函数建立临时变量的机制(const)
- 也谈C++深拷贝、浅拷贝和函数返回值作参数及其临时变量的生存期
- C语言学习4: 函数返回值与传入参数,关于函数值传递和类型隐性转换,变量不同的作用域,static变量,多文件编译例如两个C文件,显示函数调用语句跳转,递归,斐波那契数列,多文件编译相同变量的问题。
- 作为函数参数的临时变量的引用必须是const的
- 【c语言】关于临时变量出其作用域就释放的例子
- 关于函数返回值的几种情况
- 关于类成员函数结尾带const和不带const的问题
- Const,Const函数,Const变量,函数后面的Const
- C++ 函数返回值声明为const的原因
- 关于数据交换,不用临时变量的小算法 2014-7-25