C++ 支持两种初始化变量的形式:
直接初始化:把初始化式放到括号里
复制初始化:使用等号
初始化不是赋值。直接初始化语法更加灵活且效率更高。
建议每个内置类型的对象都初始化:置零。
在函数体外定义的内置类型,其元素自动初始化为0;
在函数体内定义的内置类型,其元素无初始化,在无初始化情况下使用,出错!
如果为类类型,自动调用默认构造函数,无的话,必须显式初始化!
数组也遵循以上规则,但是如果数组定义的个数大于初始化列表(但至少有一个)的情况下,在函数体内的也会自动初始化。在函数体内 int num[5] = {0,2,1}; 则num[4] 也会自动初始化,但是直接
int num[5] ; 然后调用,就出错,因为不会自动初始化。
再用字符字面值初始化字符数组时,一定要添加结束字符的空字符!!!
声明:用于向程序表明变量的类型和名字
定义:用于为变量分配空间,还可以为变量指定初始值。
定义的同时声明了,若只声明不定义,则用extern关键字,其不分配存储空间,但是如果extern int a = 1;则是定义了。
const 对象默认为文件的局部变量,要想在其他文件中使用,需要加extern ,1.cc extern const int cnt = 1; 2.cc extern const int cnt; 2.cc 中的extern是必须的。