变量的初始化、定义和声明

1.C++支持两种初始化变量的形式复制初始化直接初始化。复制初始化语法用等号(=),直接初始化则是把初始化式放在括号中:

int iVal(1024);		//直接初始化
int iVall = 1024;	//复制初始化

 在C++中“初始化不是赋值”,初始化指创建变量并给它赋初始值,而赋值则是擦除对象的当前值并用新值代替。

 

2.变量的初始化规则

(1).内置类型变量的初始化

内置类型变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化成0,在函数体内定义的内置类型变量不进行自动初始化。未初始化变量引起的错误难以发现,永远不要依赖未定义行为。

建议每个内置类型的对象都要初始化。虽然这样做并不总是必须的,但是会更加容易和安全,除非确定忽略初始化式不会带来风险。

(2)类类型变量的初始化

类通过定义一个或多个构造函数来控制类对象的初始化。大多数类都提供了默认构造函数。如果类具有默认构造函数,那么就可以定义该类的变量时不用显式地初始化变量。有些类型没有默认构造函数。对于这些类型来说,每个定义都必须提供显示的初始化式。

 

3.声明和定义

变量的定义用于为变量分配存储空间,还可以为变量指定初始值,变量有且只有一个定义。

变量的声明用于向程序表明变量的类型和名字。定义也是声明:当定义变量时我们声明了它的类型和名字。可以通过extern关键字声明变量名而不是定义它。

extern int i;	//声明并未定义
int j;		//声明并且定义

extern声明不是定义,也不分配存储空间。程序中,变量可以声明多次。

如果声明有初始化式,那么它可以被当作定义,即使声明标记为extern:

extern int jjj = 10;	//声明并且定义

 只有当extern声明位于函数外部时,才可以含有初始化式。此时当作定义,不能再次定义,可以被重复声明。

在C++中,变量必须且仅能定义一次,而且在使用变量前必须定义或声明变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值