列表初始化
-
int a = 0; int a = {0}; int a(0); int a{0};
-
形如
a{}
的成为列表初始化,当使用{}且存在丢失信息风险的时候,编译器会报错,例如long double d = 3.1415926; int e{d};// 报错 int f(d);// 不报错
声明与定义
- 变量声明规定了变量的类型和名字,定义在此基础上还申请存储空间
- 变量只能被定义一次,但是可以被多次声明
extern int i; //声明而非定义i int j; //声明且定义j
名字的作用域
- 函数体之外定义:全局作用域
函数体之内定义:块作用域 - 允许在内层定义域重新定义外层已有的名字
引用
- 引用并非对象,他只是已有对象的别名
空指针
-C: NULL
C++: nullptr
auto类型说明符
- 不知道具体类型,可以通过初始值推断,因此
auto
定义的变量必须有初始值
decltype类型说明符
- 选择并返回操作数的数据类型,例如
int a = 10; decltype(a) b = 4; // b是int类型