关于C++变量初始化的总结(转载+自己总结)

本文介绍了C++中变量初始化的规则,包括内置类型和类类型变量。全局内置类型变量会被自动初始化为0,局部变量值不确定。类类型变量通过构造函数初始化,成员变量的初始化可通过赋值或成员初始化列表完成,其中常量成员和引用类型成员需在初始化列表中处理。静态成员需在类外初始化,引用变量必须在声明时初始化。
摘要由CSDN通过智能技术生成

         当定义没有初始化的变量时,系统有可能会为我们进行隐式的初始化,至于系统是否帮我们隐式初始化变量,以及为变量赋予一个怎么的初始值,这要取决于该变量的类型以及变量的定义域

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

内置变量是否自动初始化,取决于该变量的定义域。

①在全局范围内的内置类型变量均被编译器自动初始化为0

#include<iostream>

using namespace std;

//全局范围内的部分内部变量
int gi;  //被自动初始化为0
float gf;  //被自动初始化为0.0
double gd;  //被自动初始化为0.0
char gc;  //被自动初始化为'\0'

int main(int argc, char **argv)
{
  return EXIT_SUCCESS;
}

②在函数体内定义的内置类型变量值随机(有的编译器可能会为你初始化为0,但千万别依赖于这种可能行为,因为它会给你的程序带来未定义的行为)

#include<iostream>

using namespace std;

int main(int argc, char **argv)
{
  //局部范围内的部分内部变量
  int i;  //不被自动初始化,值随机(有可能是0,依编译器实现而定)
  float f;  //不被自动初始化,值随机(有可能是0,依编译器实现而定)
  double d;  //不被自动初始化,值随机(有可能是0,依编译器实现而定)
  char c;  //不被自动初始化,值随机(有可能是0,依编译器实现而定)

  return EXIT_SUCCESS;
}

③内置类型数组的初始化规则同上

#include<iostream>

using namespace std;

//全局范围内的内置类型数组
int gIntArr[5];  //5个元素都被初始化为0

int main(int argc, char **argv)
{
  //局部范围内的内置类型数组
  int intArr[5];  //未被初始化
  
  return EXIT_SUCCESS;
}

这里需要特别强调一点ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值