Computer >> Máy Tính >  >> Lập trình >> C ++

Thời gian tồn tại của một biến tĩnh trong một hàm C ++ là gì?


Biến tĩnh là một 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à không gian này được sử dụng cho toàn bộ 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. Vì vậy, thời gian tồn tại của một biến tĩnh là thời gian tồn tại của chương trình.

Một chương trình thể hiện một biến tĩnh được đưa ra như sau.

Ví dụ

#include <iostream>
using namespace std;
void func() {
   static int num = 1;
   cout <<"Value of num: "<< num <<"\n";
   num++;
}
int main() {
   func();
   func();
   func();
   return 0;
}

Đầu ra

Kết quả của chương trình trên như sau.

Value of num: 1
Value of num: 2
Value of num: 3

Bây giờ, chúng ta hãy hiểu chương trình trên.

Trong hàm func (), num là một biến tĩnh chỉ được khởi tạo một lần. Sau đó, giá trị của num được hiển thị và num được tăng lên một. Đoạn mã cho điều này được đưa ra như sau -

void func() {
   static int num = 1;
   cout <<"Value of num: "<< num <<"\n";
   num++;
}

Trong hàm main (), hàm func () được gọi 3 lần. Giá trị num chỉ được cấp phát một lần và không phải trên mọi lệnh gọi hàm. Đoạn mã cho điều này được đưa ra như sau.

int main() {
   func();
   func();
   func();
   return 0;
}