C++之引用2
来源:互联网 发布:.com域名注册 编辑:程序博客网 时间:2024/05/16 13:13
1.用引用返回值
函数返回值时,会生成一个副本,而用引用返回值时,不生成新的副本。
For example:
Float temp;
Float fn1(float r)
{
Temp=r*r*3.14;
Return temp;
}
Float fn2(float r)
{
Temp=r*r*3.14;
Return temp;
}
上面的temp是全局变量。
下面有4种赋值方式:
(1)Float a=fn1(5.0);
(2)Float &b=fn1(5.0);
(3)Float c=fn2(5.0);
(4)Float &d=fn2(5.0);
第(1)中方式是直接赋值,是fn1函数中的返回值的生成的副本赋值给a;
第(2)中方式是错误的,因为不能把一个临时的副本赋值给一个引用。这时可以这样用:
float s=fn1(5.0);float &b=s;
(3)方式是fn1函数中的temp直接赋值给c,并没有先生成一个副本,然后再赋值给c。
(4)方式是fn2函数中的temp直接赋值给引用d,即是d就是temp的引用。但是这种方式存在一定风险,如果,temp是临时变量,这种做法就是错误的。
2.引用作为左值是很危险的,
如fn2(5.0)=12.4;
3.传递指针和引用更大的目的是效率。当一个数据类型很大时,因为传值要复制副本,所以不可取。所以以后写算法时,尽量要用引用还有指针进行提升效率,较少运行时间。
0 0
- C++Primer读书笔记之引用
- c之引用作为参数
- C语言之指针,数组,引用
- C常见问题之头文件引用
- objective-c基础之引用计数
- 《唐老师C++》之const引用
- c,c++易错点之指针与引用
- 黑马程序员-Object C之循环引用
- C语言之指针,数组,引用
- Objective-C内存管理之引用计数
- 【C++】:C++之C++的引用
- C与C++之引用与指针
- C++之引用2
- c++primer 2/23---引用
- 引用(c++)
- C++----引用
- c++-引用
- C ++ 引用
- hibernate mysql 乱码的解决方法
- Bag of words and Bag of features
- 第三周项目1 顺序表的基本运算
- 比较好的方式管理我们的应用判断,比如Activity跳转,网络是否连接,判断json....
- C++类型转换
- C++之引用2
- Compare Version Numbers
- 全面掌握IO(输入/输出流)
- 复习排序-简单选择排序
- 图像处理之基于一维高斯快速模糊
- 摄像头拍照之压缩图片
- iOS 当前视图控制器view.frame 在viewDidLoad 和 viewWillAppear 中值不一样问题
- SLAM学习笔记1:历史与现状
- LA-3026 - Period-MP算法-失配函数-寻找循环节 (kmp)