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++ 编译器没有使用默认值初始化变量?答案很简单,初始化一个堆栈变量很昂贵,因为它会妨碍执行速度,因此这些变量可能包含不确定的值。因此,在代码中应用之前,将基本数据类型变量初始化视为一种好习惯。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP