第二章 基础语法
一、列表初始化
示例
int units_sold = 0;
int units_sold = {0};
int units_sold{0};
int units_sold(0);
在内置类型的变量使用花括号进行初始化若存在丢失信息的风险,编译器将报错
long double ld = 3.1415926536; // 编译不通过
int a{ld}, b = {ld}; // c 为直接初始化,d 为拷贝初始化 两个都可能出现警告
int c(ld), d = ld;
二、变量的声明和定义
如果声明一个变量而非定义它,就在变量名前添加关键字 extern,而且不要显示地初始化变量。在函数体内部试图初始化一个由 extern 关键字标记的变量时,将引发错误
#include <iostream>
extern int i; // 声明 i 而非定义 i
int j; // 声明并定义 i
int main() {
// extern int ei; // 这里会报错
return 0;
}
三、复合类型
1、引用
引用:为对象起另外一个名字,并非对象。对其进行的所有操作都是在与之绑定的对象上进行的。引用必须被初始化
int ival = 1024;
int& refVal = ival; // 引用必须被初始化
int& refVal2;


