首页 > 代码库 > C++ Primer 笔记——变量
C++ Primer 笔记——变量
1. 初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来代替。
2.使用列表初始化内置类型的变量时,如果初始值存在丢失信息的风险,则编译器将报错。
int i{0.1}; // 错误
3.如果想声明一个变量而非定义它,就在变量名前添加关键字extern,而且不要显示的初始化它,任何包含了显示初始化的声明即成为定义。
extern int i; // 声明i而非定义iint j; // 声明并定义j extern double pi = 3.14; //定义,如果在函数体内试图初始化一个extern变量将报错
4.引用并非对象,相反的,它只是为一个已经存在的对象起的另外一个名字。
5.一旦引用的初始化完成,引用将和它的对象一直绑定在一起,所以引用在定义时必须初始化。
6.在支持C++ 11的情况下空指针最好使用nullptr,而尽量避免使用NULL。至于原因可以看如下链接:
http://www.cnblogs.com/zoneofmine/p/7224947.html
7.void* 是一种特殊的指针类型,可用于存放任意对象的地址,但是我们不知道这个地址中到底是个什么类型的对象,所以也无法对这个对象做操作。
8.在定义多个变量的时候,类型修饰符(*或&)仅仅修饰最近的那个变量。
int* p1, p2; // p1是int指针,p2是int
9.引用本身不是一个对象,所以不能定义指向引用的指针,也没有引用的引用。
10.decltype的表达式如果是加上了括号的变量,结果将是引用。
int i = 0;decltype((i)) a; // 错误,a是int&,没有初始化decltype(i) b; // 正确,b是一个int
C++ Primer 笔记——变量
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。