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++ 不为变量分配一些默认值?答案是,初始化栈变量的开销太大。它还会阻碍执行速度。因此,这些变量可能会包含一些中间值。所以在使用之前,我们需要初始化原始数据类型的值。
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP