最常见的问题之一是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"; }
1.4013e-045 0 2.91499e-322 0
0 0 0 0
那么,现在的问题来了,为什么C或C ++没有为变量分配一些默认值?答案是,初始化堆栈变量的开销很大。这也会影响执行速度。因此,这些变量可能包含一些中间值。因此,我们需要在使用原始数据类型值之前对其进行初始化。