C++基础知识易错点和易混淆总结汇总(不定时更新)
来源:互联网 发布:密室逃脱窃取数据攻略 编辑:程序博客网 时间:2024/06/08 04:09
以下是我本人不定时更新的易错点汇总,如需转载,请注明出处。
1、对指针的引用
int a = 10;int *p = &a;//初始化指针p。int* &pa = p;//这个是对指针p的引用、在我们使用pa的操作。相当于对p的操作
2、函数返回值的行为
...int add(int a, int b){ return a + b ;}....int a = 1;int b = 2;int c = add(a, b); //create temporary, delete it after executing this statement...
上面的代码中,在 int c = add (a, b);时,发生了如下事情:
首先:创建了一个临时对象,如temp。
然后:将函数的返回值 a+ b 的副本 复制给 temp;
最后:将temp 的副本复制给 变量 c,并删除临时变量 temp
下面给出一个常见的错误:
#include <iostream>#include <string>using namespace std;const float pi = 3.14f;float f;//全局变量//返回一个floatfloat fun1(float r){f = r*r*pi;return f;}//返回一个引用float& fun2(float r){f = r*r*pi;return f;}int main(){float fun1(float=5);//正确:默认参数调用float& fun2(float=5);//正确:默认参数调用float a = fun1();////正确float& b= fun1();//错误:返回值会保存到一个临时变量temp,对一个临时变量的引用//会出问题的float& c= fun2();//正确 这种方式直接返回一个全局变量的引用,是最节省内存空间的//但是也是容易出问题,要注意所引用变量的有效期,此处,全局//变量的引用明显比c的有效期长。所以是安全的getchar();return 0;}
持续更新中!!!!!!
0 0
- C++基础知识易错点和易混淆总结汇总(不定时更新)
- Java千万不能忘记的基础知识总结(不定时更新)
- JDBC总结(不定时更新)
- 程序员应掌握的基础知识(不定时更新)
- ubuntu Android开发问题汇总(不定时更新)
- Vivado_MicroBlaze_问题及解决方法_汇总(不定时更新)
- 小技巧汇总(不定时更新···)
- Ubuntu 下的命令汇总(不定时更新)
- JavaSE实用技巧汇总(不定时更新)
- C#基础知识总结(不定时添加新内容)
- 猜猜看软件-学习总结(不定时更新)
- 最短路模板总结(不定时更新)
- 程序员笔试面试题总结(不定时更新)
- C语言随感进行时(不定时更新)
- Android小技巧总结(不定时更新)
- bug修改记录总结(不定时更新)
- 虚拟机检测绕过总结--不定时更新
- linux常用命令总结(不定时更新)
- springmvc+jpa+hibernate 报错
- PXI Express外设板信号汇总(更新中)
- 三元表达式和if-else语句的区别
- python Django 1.7 中文入门 (官网) 10 修改admin页面
- Mahout基于item的协同过滤之asMatrix
- C++基础知识易错点和易混淆总结汇总(不定时更新)
- asdfasdfasdfasfd
- html调整img的水平垂直位置
- Eclipse查看Java源码的方式
- javax.tools.Diagnostic 类使用示例
- C++ & VB.NET & VB 过程函数结构
- LeetCode:Majority Element
- C#中 Thread类的使用
- 异常详细信息: System.Data.SqlClient.SqlException:用户 'IIS APPPOOL\DefaultAppPool' 登录失败解决办法