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

在本节中,我们将看到当声明一个未初始化的变量时,它们将使用C或C ++语言保存。有时我们假设编译器分配一些值,例如int为0,float等为0.0。但是字符数据类型将是什么呢?让我们看看使用实现并使用不同的编译器进行编译。

范例(C ++)

让我们看下面的实现以更好地理解-

#include <iostream>
using namespace std;
int main() {
   char char_var;
   float float_var;
   int int_var;
   double double_var;
   long long_var;
   cout << char_var << endl;
   cout << float_var << endl;
   cout << int_var << endl;
   cout << double_var << endl;
   cout << long_var << endl;
}

输出(在Cpp.sh中编译)

0
0
0
0

输出(在在线GDB中编译)

5.88054e-39
0
6.95297e-310
0

输出(本地系统)

9.73438e-039
4309744
1.15685e-306
-53505136

现在的问题来了,为什么C / C ++编译器不使用默认值初始化变量?答案很简单,初始化堆栈变量的开销很大,因为它阻碍了执行速度,因此,这些变量可能由不确定的值组成。因此,在将原始数据类型变量应用于代码之前,将其初始化是一种好习惯。