1.C++11新定义
数据类型 long long 最小尺寸64位;
花括号可以用于初始化变量——int units_sold={0};
右值引用问题;
空指针用字面值nullptr初始化——int *p1=nullptr,且尽量避免null;
using SI=Sales_item; 等同于 typedef Sales_item SI;
2.如何选择类型:
当明确知晓数值不可能为负时,选用无符号类型。
使用int作整数运算,如果数值超过int范围,选用long long;
在算数表达式中不要使用char或bool;
执行浮点数运算选用double;
3.字符和字符串字面值:
单引号括起来的一个字符称为char型字面值——‘a’;
双引号括起来的零个或多个字符构成字符串型字面值——“Hello world”;
注意编译器会在每个字符串的结尾处添加一个空字符(’\0‘)
4.初始化默认值:
定义在任何函数体外的变量会被初始化为0;
定义在函数体内部的变量不会被初始化;
类的对象未被初始化,则初值由类决定;
5.变量声明和定义的关系:
如果想声明一个变量而非定义它,就在变量名前添加关键字extern,而且不要显示初始化
extern int i;//声明而非定义
ertern double pi=3.1416;//定义而非声明
6.变量命名规范:
标识符要能体现实际含义;
变量名一般用小写字母,如index;
自定义类名一般以大写字母开头,如Sales_item;
如果标识符由多个单词组成,则单词间应有明显区分,如student_loan;
7.引用与指针:
引用即别名,相当于已存在的对象所起的另外一个名字,且只能绑定在对象上,并需要立刻初始化;
指针本身就是一个对象,可以在其生命周期内先后指向不同的对象,且不需要定义时就付初值;
8.指针:
遇到复杂指针或引用时,使用从右至左的方式阅读。
9.const限定符:
(1)默认状态下,const对象仅在文件内有效,若想在多个文件下使用同一const变量,需要在声明和定义时都添加extern关键 字;
(2)const的引用:对常量的引用不可以被用作修改它的途径,即不能用一个普通非常量引用一个常量,这样会提供一种 修改它的非法途径;
通常引用的类型需与所引用对象类型一致,有两种特例
(3)指针和const:通常指针的类型需与所指对象类型一致,有两种特例;
常量指针必须初始化而指针指向一个常量不需要,常量指针 int *const curErr=&i;必须初始化因为指针不可以再指向 别的地方,指针指向一个常量 const int*p,只是指针指向的是一个常量,她还可以指向别的地方,所以不用必须初 始化;
(4)顶层与底层const:(针对指针而言)顶层指指针本身是个常量,底层指指针所指向的对象是一个常量
const int *const p3=p2;
底 顶
顶层可以表示任意的对象是常量,对任何数据类型都适用;
底层const则是对指针与引用有关。普通数据类型都是顶层,引用只有底层,而指针底层顶层都有。