ค่าของตัวแปร Primitive ที่ไม่ได้ Initialize (Uninitialized) เป็น Indeterminate (Garbage Value) แตกต่างระหว่างระบบและคอมไพเลอร์
ตัวอย่าง
#include <iostream>
using namespace std;
int main() {
char a; float b; int c; double d; long e;
cout << a << "\n" << b << "\n" << c << "\n" << d << "\n" << e << "\n";
return 0;
}
ผลลัพธ์ (Windows)
1.4013e-045 0 2.91499e-322 0
ผลลัพธ์ (Linux)
0 0 0 0
ทำไม C/C++ ไม่กำหนดค่า Default? เพื่อประสิทธิภาพ - การ Initialize ทุกตัวแปรบน Stack ทุกครั้งจะช้าลง