C++学习笔记2
来源:互联网 发布:mac下载软件推荐 编辑:程序博客网 时间:2024/05/21 17:36
这篇文章主要是对C++Primer(5th edition)开头部分(第一章、第二章)一些有意思的内容的探讨。
1.c++的注释/**/遵守“最近配对”的规则,C++ Primer(5th edition)上有一个蛮有意思的例子:
#include<iostream>using namespace std;int main(){cout<<"/*"<<endl;cout<<"*/"<<endl;cout<</*"*/"*/<<endl;cout<</*"*/"/*"/*"*/<<endl; }
可以说明这个问题,其中第六行是错的。
2.for 循环和while循环没有本质区别,效率上也没有孰优孰劣。
3.endl不只是换行那么简单,它还可以刷新buffer(数据缓冲区),这样就能保证写入流中的数据可以全部输出,相比之下,\n只能换行,不能刷新缓冲区。
4.申明和定义不是一回事。例如:
extern int a;//declaration
int a;//defination
在函数内部对被extern标记的变量赋值会导致错误。
5.变量的作用域(scope)也遵守最近配对的规则。
6.引用不是对象!所以没有“引用的引用”这种说法。(所谓对象指的是类的实体)
7.指针和引用的基本区别在于:指针本身是一个对象,在其生命周期内允许指向其他值;申明指针可以不初始化(虽然很不安全!),但引用必须要初始化。
8.C++11引入了nullptr,那么nullptr,NULL,0有什么区别?
答:C++03对0做了特殊规定:0既可以表示整数,又可以表示空指针常量(null pointer constant),这种二义性会带来一些问题(比如函数重载)。而NULL其实是宏定义的void *指针,C++禁止了void *指针向其他类型的隐式转换,所以NULL其实是宏定义的0。nullptr是C++11为了填这些坑引入的,用来表示“不指向任何对象的指针”,这样void *就可以被理解成“指向未知类型的指针”,而0就是0。
- C 学习笔记2
- c学习笔记(2)
- c sharp学习笔记2
- C语言学习笔记(2)
- 狂人C学习笔记(2)
- C: 入门学习笔记(2)
- object-c学习笔记-2
- C语言学习笔记2
- c语言学习笔记2
- C++Primer学习笔记《2》
- C语言学习笔记2
- C语言学习笔记2
- Objective-C学习笔记2
- Linux &C 学习笔记2
- C语言学习笔记2
- C&C++学习笔记2
- c语言学习笔记2
- C/C++学习笔记2
- java web笔记----html复习
- 如何使用sha1方法
- HTML5 URL类型
- 并查集算法回顾
- Python 第一个例子
- C++学习笔记2
- textarea 禁止输入表情的解决方案
- opengl 遇到的一些问题
- ubuntu 下安装gcc
- 踩坑koa1.x升级koa2.x及前端工程师面临的新挑战
- 【Python】python 中新式类和经典类
- caffe初步实践---------使用训练好的模型完成语义分割任务
- (源代码)一类匹配不确定非线性系统的动态逆全程滑模变结构控制
- Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) 题解(ABCDE) (二分,dfs序,数据结构)