c .声明、定义、初始化和分配
免责声明:仅指定变量的类型和名称,而没有进行内存分配.
定义:不仅指定变量的类型和名称,而且数量将由进行了内存分配和可能.初始化
初始化:当对象在创建时.获得特定值时
任务:擦除's原值,交给新值.
int a;//声明并定义一个
extern int a;//extern表示声明但不定义。
extern int a=2;//任何包含显示初始化的声明都成为一个定义。
int a=2;//初始化
a=3;//赋值
一个小细节
对于int a=2;我们可以清楚地分析出,这句话声明并定义了变量A,并将A初始化为2。
但是对于int a;我们应该如何分析这段代码?
首先,这段代码声明并定义了A,但是它是否初始化了呢?
还记得我之前说过可以初始化定义吗?实际上,这个初始化不仅包括显式初始化,还包括默认初始化.
但是,默认初始化与变量的类型和位置有关:
当变量为自定义类类型:
调用自己的默认构造函数进行初始化。
当变量为内置类型时:
当这个变量在函数体外,定义时,它将被初始化为0。
当变量在函数体内,定义时,它不会被初始化。
所以对于int a;这一行代码是否初始化也取决于它的位置。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/135149.html