Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Kiểu dữ liệu nguyên thủy chưa khởi tạo trong C/C++

Câu hỏi thường gặp: giá trị của kiểu dữ liệu nguyên thủy chưa khởi tạo trong C/C++ là gì? Câu trả lời khác nhau tùy hệ thống. Có thể tưởng trình biên dịch gán 0: int = 0, float = 0.0, nhưng kiểu ký tự thì sao?

Ví dụ

#include <iostream>
using namespace std;

int 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";
    return 0;
}

Kết quả (Windows)

1.4013e-045
0
2.91499e-322
0

Kết quả (Linux)

0
0
0
0

Tại sao C/C++ không gán mặc định? Chi phí khởi tạo biến stack tốn kém, làm chậm thực thi. Biến có thể chứa giá trị rác. Cần khởi tạo trước khi dùng.