C++ 返回引用小细节
来源:互联网 发布:网站美工培训多少钱 编辑:程序博客网 时间:2024/06/05 09:02
#include <iostream>
using namespace std;
int * & go()
{
int *p; //在栈上创建变量p
p=new int;//p存储堆上分配的空间
*p=10;
int * &rp = p;
return rp; //返回变量p的引用
}
int main()
{
int* &a=go(); //a是临时变量p的引用,函数返回,此语句执行完之后p就会释放掉
cout<<"hello"<<endl;
cout<<*a<<endl;//不能正常输出
cout<<*a<<endl;
// 没有delete
return 0;
}
返回引用注意细节:
1.不能返回临时变量的引用
2.若返回临时指针引用(使用new分配空间,像上面这个例子),保证要获取new申请的堆空间指针。
上述例子的修改措施:
1.int* &a=go();//改为 int* &a = go(); int *p = a; //将此变量存储
2.int* &a=go();//改为 int* a = go(); 直接使用一个变量存储返回值,会发生类型不匹配的警告
0 0
- C++ 返回引用小细节
- IOS引用计数的小细节
- C语言中的小细节
- C++:引用作为返回值
- C++&C编程相关小细节
- c语言注意的小细节
- C#string类的一点小细节
- c语言的一些小细节
- C语言小细节---------const变量
- C 的各种指针 and 小细节。
- 引用参数与引用返回值 细节处提升代码效率
- 12.c++-返回引用的函数
- C++,返回对象的引用,语法练习
- <<c++primer>>返回引用的函数调用
- c字符有关输入输出的小细节小笔记
- 常量函数、常量引用参数、常量引用返回值[C++]
- 常量函数、常量引用参数、常量引用返回值[C++]
- c++:函数返回引用类型和非引用类型
- STL简单学习2
- 被node.js坑过的事(二)
- nexus 安装
- python__The _imaging C module is not installed
- Android Studio的使用02-Can't resolve the symblo异常
- C++ 返回引用小细节
- VS2013 + quick-cocos2dx + BabeLua 环境搭建
- Sping AOP用AspectJ注解的方式拦截不到SpringMVC的controller方法?
- Asp.Net
- 实体店转战移动APP的创富之路---魅社区
- 2015.12 第一篇IT博
- Lucene 课程2---索引的建立
- 火狐中禁用图片拖动打开新页面,禁用右键和复制
- c++实现http协议模仿get方法访问tomcat