总结C/C++变量的初始化规则

本文详细介绍了C/C++中变量的初始化规则,包括内置类型变量在类内外的默认初始化,类成员变量的初始化顺序和优先级,以及static静态变量的内存分配和初始化。强调了成员变量必须通过初始化列表进行初始化的重要性,特别是const、引用和无默认构造函数的类类型。同时,讨论了类的static静态变量的特性,即它们在编译时分配内存并初始化为0。
摘要由CSDN通过智能技术生成

2020年8月11日 周二 天气晴 【不悲叹过去,不荒废现在,不惧怕未来】



1. 内置类型变量默认初始化规则(类外)

如果内置类型变量在定义时没有指定初值,会有以下两种可能:

  1. 定义于任何函数体之外的变量(全局变量)被默认初始化为0

  2. 定义于函数体内部的内置变量类型不能被默认初始化(报错)

(附加)类类型的变量不管定义在哪里,都会调用默认构造方法

2. 类的成员变量初始化规则(类内)

2.1 内置类型变量的默认初始化规则

与类外的内置类型变量不同,如果内置类型的成员变量在定义时没有初始化(可以在定义时进行初始化但不推荐这样做),那么成员变量会被初始化为任意值(因此成员变量务必要进行初始化,而且最好是用初始化列表的方式)。

2.2 变量的初始化顺序

(1)构造函数初始化列表
在利用构造函数初始化列表对成员变量进行初始化时,变量初始化的顺序只与成员变量的声明顺序有关,而与在初始化列表的顺序无关。

(2)构造函数赋值
在构造函数内

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值