Trong C, phạm vi (scope) là vùng chương trình mà biến/định danh có thể truy cập trực tiếp.
Biến toàn cục (Global Variables)
Khai báo ngoài mọi hàm. Giữ giá trị suốt vòng đời chương trình. Truy cập được ở mọi nơi.
Ví dụ
#include <stdio.h>
int s; // Toàn cục
int main() {
int a = 15, b = 20;
s = a + b;
printf("a = %d\nb = %d\ns = %d\n", a, b, s);
return 0;
}
a = 15 b = 20 s = 35
Biến cục bộ (Local Variables)
Khai báo bên trong khối/hàm. Chỉ dùng được trong khối đó. Hủy khi thoát khối.
Ví dụ
#include <stdio.h>
int main() {
int a = 15, b = 20;
a = a + b;
printf("a = %d\nb = %d\n", a, b);
return 0;
}
a = 35 b = 20
Tóm tắt
| Đặc điểm | Toàn cục | Cục bộ |
|---|---|---|
| Vị trí khai báo | Ngoài hàm | Trong hàm/khối |
| Phạm vi | Toàn chương trình | Chỉ trong khối khai báo |
| Vòng đời | Cả chương trình | Kết thúc khối |
| Giá trị mặc định | 0 | Rác (garbage) |
Lưu ý: Biến cục bộ che khuất (shadow) biến toàn cục nếu trùng tên. Nên hạn chế biến toàn cục, ưu tiên cục bộ và truyền tham số.