Biến cục bộ static là biến có vòng đời không kết thúc khi gọi hàm nơi nó được khai báo. Nó kéo dài suốt vòng đời chương trình. Tất cả lời gọi hàm chia sẻ cùng một bản sao của biến static cục bộ.
Các biến này dùng để đếm số lần hàm được gọi. Giá trị mặc định của biến static là 0. Trong khi biến cục bộ thông thường chỉ hiển thị trong khối định nghĩa và vô hình bên ngoài khối.
Biến toàn cục bên ngoài khối hiển thị đến cuối chương trình.
Ví dụ
Chương trình C biến cục bộ:
#include <stdio.h>
main (){
int a = 40, b = 30, sum; // Bien cuc bo, vong doi trong khoi
printf("Tong = %d", a + b);
}
Đầu ra
Kết quả:
Tong = 70
Ví dụ
Chương trình C biến toàn cục:
int c = 30; /* vung toan cuc */
main (){
int a = 10; // vung cuc bo
printf("a=%d, c=%d", a, c);
fun();
}
fun (){
printf("c=%d", c);
}
Đầu ra
Kết quả:
a = 10, c = 30 c = 30
Ví dụ
Chương trình C biến cục bộ static:
#include <stdio.h>
void fun(){
static int x; // Gia tri mac dinh cua static la 0
printf("%d ", x);
x = x + 1;
}
int main(){
fun(); // Bien static cuc bo, vong doi khong dung khi ham ket thuc
fun();
return 0;
}
Đầu ra
Kết quả:
0 1