01/10/2018, 17:46
Giá trị mặc định của biến trong C
Mình có một thắc mắc là khi khai báo biến thì giá trị mặc định khi biến đó được khởi tạo là bao nhiêu?
Mình thử viết 1 chương trình để kiểm tra thì thấy giá trị của 2 biến kiểu int a,b in ra giá trị là 2 và 32. Chả thấy liên quan đến cái gì luôn.
Bài liên quan
Giá trị rác
Nhưng sao nó lại gán cho 2 biến đấy giá trị như vậy? Như vậy khi khai báo 1 biến hay mảng thì mình cần khai báo giá trị ban đầu cho chúng luôn để tránh bị “giá trị rác” như vậy phải không? Mong bạn giải thích giúp mình với!
Giá trị rác, giá trị trong biến là cái gì thì không ai biết.
Đúng.
Do giá trị ô nhớ sẵn có là vậy. Trong quá trình chạy thì có những giá trị bị hủy bỏ đang chứa giá trị nhất định. Những ô nhớ đó sẽ được sử dụng lại cho những giá trị sau. Thế là có giá trị rác.
Đối với một số ngôn ngữ bậc cao hơn (Jav, C#…), nó sẽ tự gán giá trị = 0 (hoặc null) khi khai báo.
Local thì random còn static với global đều là 0.
C99, 6.7.8 khoản 10 :<
cái này sẽ phụ thuộc vào biến của bạn khai báo là biến global hay local, bạn có thể check bằng cách thử khai báo hai biến loại này sau đó in ra màn hình để kiểm tra lại kết quả.