1:基本内置类型
算数类型:整数,浮点数,单个字符,布尔类型
void 类型
只有内置类型 才有 字面值
左值可以出现在赋值语句的左边和右边,变量是左值。
2:初始化,初始化 不是赋值
定义时指定了初始值的对象被称为已经初始化了。两种初始化形式,复制初始化(=),直接初始化。
int ival(1024) //直接初始化,更加灵活,效率更高
int ival = 1024 //复制初始化
对于内置类型,复制初始化和直接初始化几乎没有区别,类的构造函数是用来初始化的。
内置类型变量的初始化:函数体外定义的变量都初始化为0,函数体内定义的内置类型不进行自动初始化
类类型的初始化:通过定义一个或者多个构造函数来控制初始化,如果没有定义构造函数,则调用默认构造函数进行初始化
3:声明和定义
定义:用于为变量分配存储空间,还可以为变量指定初始值,在一个程序中,变量有且只有一个定义。
声明:定义也是声明,向程序表明变量的类型和名字。可以用extern声明而不定义变量。
如果声明有初始化式,那么它可被当成定义,只有当extern 声明位于函数外部时才能有表达式。
extern double pi = 3.14;
4:const限定符,定义常量
const 对象默认为文件的局部变量,不能被其他文件访问,通过指定const 对象为extern就可以在其他文件中访问了。
c文件中,extern const int i = 50;.h 文件中,extern const int i;
当const 变量用常量初始化,将其定义在头文件中,如果不是常量初始化,那么就在源文件中定义并初始化extern,在头文件中声明(extern)
非const 引用只能绑定到与该引用同类型的对象上。
const 引用可以绑定到不同但相关的对象上或绑定到右值。
double pi = 3.14;int &rpi = pi; X
douple pi = 3.14;const int &rpi = pr;正确。