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++ 编译器没有使用默认值初始化变量?答案很简单,初始化一个堆栈变量很昂贵,因为它会妨碍执行速度,因此这些变量可能包含不确定的值。因此,在代码中应用之前,将基本数据类型变量初始化视为一种好习惯。

更新于: 27-8-2020

217 次浏览

职业快速启动

完成课程即可获得认证

立即开始
广告
© . All rights reserved.