Biến tĩnh (static variable) là biến được khai báo bằng từ khóa static. Không gian cho biến tĩnh chỉ được cấp phát một lần và được dùng suốt vòng đời chương trình.
Khi biến này được khai báo, nó tồn tại cho đến khi chương trình thực thi xong. Do đó, vòng đời của biến tĩnh là vòng đời của chương trình.
Chương trình dưới đây minh họa biến tĩnh.
Ví dụ
#include <iostream>
using namespace std;
void func() {
static int num = 1;
cout << "Giá trị của num: " << num << "\n";
num++;
}
int main() {
func();
func();
func();
return 0;
}
Kết quả
Giá trị của num: 1 Giá trị của num: 2 Giá trị của num: 3
Hãy hiểu chương trình trên.
Trong hàm func(), num là biến tĩnh chỉ được khởi tạo một lần. Giá trị của num được hiển thị và num tăng lên 1.
void func() {
static int num = 1;
cout << "Giá trị của num: " << num << "\n";
num++;
}
Trong hàm main(), hàm func() được gọi 3 lần. Biến num chỉ được cấp phát một lần, không phải mỗi lần gọi hàm.
int main() {
func();
func();
func();
return 0;
}