C/C++ 中未初始化的原始数据类型


一个最常见的问题是 C 或 C++ 中某些未初始化原始数据类型的值是多少?好,答案在不同的系统中是不同的。我们可以假设编译器将 0 赋值给变量。对于整数可以是 0,对于浮点数可以是 0.0,但是对于字符类型的数据呢?

示例

#include <iostream>
using namespace std;
main() {
   char a;
   float b;
   int c;
   double d;
   long e;
   cout << a << "\n";
   cout << b << "\n";
   cout << c << "\n";
   cout << d << "\n";
   cout << e << "\n";
}

输出(Windows 编译器)

1.4013e-045
0
2.91499e-322
0

输出(Linux 编译器)

0
0
0
0

现在,问题来了,为什么 C 或 C++ 不为变量分配一些默认值?答案是,初始化栈变量的开销太大。它还会阻碍执行速度。因此,这些变量可能会包含一些中间值。所以在使用之前,我们需要初始化原始数据类型的值。

更新于: 2020 年 8 月 27 日

241 次查看

启动你的 职业生涯

完成课程获得认证

开始
广告
© . All rights reserved.