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

Truy xuất biến int và float chưa khởi tạo trong C

Vấn đề

Khai báo biến int và float mà không khởi tạo, sau đó in giá trị. Điều gì xảy ra?

Giải thích

  • Biến khai báo mà không khởi tạo sẽ chứa giá trị rác (garbage) hoặc 0.
  • Khi khai báo, ô nhớ được cấp phát. Khởi tạo mới ghi giá trị vào ô nhớ đó.
  • Nếu không khởi tạo, ô nhớ giữ giá trị cũ (rác) hoặc được khởi tạo 0 tùy trình biên dịch/môi trường.
  • In ra sẽ cho 0 hoặc giá trị rác ngẫu nhiên.

Chương trình

#include <stdio.h>

int main() {
    float a, b, c;
    int x, y, z;

    printf("Gia tri a: %f\n", a);
    printf("Gia tri b: %f\n", b);
    printf("Gia tri c: %f\n", c);
    printf("Gia tri x: %d\n", x);
    printf("Gia tri y: %d\n", y);
    printf("Gia tri z: %d\n", z);
    return 0;
}

Kết quả (ví dụ)

Gia tri a: 0.000000
Gia tri b: 0.000000
Gia tri c: 0.000000
Gia tri x: 1512368
Gia tri y: 0
Gia tri z: 27

Lưu ý: Kết quả khác nhau tùy máy, trình biên dịch, lần chạy.