对象、声明、定义、初始化、赋值
声明不等于定义
初始化不等于赋值
对象:一块能储存数据,并具有某种类型的内存空间。
声明:规定了变量的名字和类型,并不申请空间。
定义:为对象分配储存空间,也可能赋予一个初始值。
double geta();//函数声明
int a//内置类型声明,并定义,初始值不确定
初始化:当对象在创建时,获取了一个特定的值,我们说这个对象被初始化了,初始化不是赋值,初始化的含义是创建对象时赋予一个初始值。
赋值:把对象的当前值擦除,用一个新的值来替代(即对象是已经存在的)。
对于内置类型对象而言,如果没有初始化,则其值是未定义的,类的对象如果没有显式初始化,则由类的默认构造函数决定其值。
int a=0;//利用=号初始化
int b(9);//直接初始化
int b{9};//列表初始化,c++11
a=3;//赋值,先删除a原来的值(0),而后赋予a新的值(3)
int c;//声明并定义c,没有初始化,但c的值未定义(可能会随机初始化,这种行为很危险,定义一个对象就应该初始化)
参考资料:c++primer 2.2变量
知乎