Xem thêm

Biến tĩnh trong C++: Khám phá tính năng thú vị này

Huy Erick
Trong ngôn ngữ lập trình C++, biến tĩnh là một khái niệm quan trọng mà chúng ta nên hiểu rõ. Trên thực tế, biến tĩnh mang lại nhiều lợi ích đáng kể cho chương trình...

Trong ngôn ngữ lập trình C++, biến tĩnh là một khái niệm quan trọng mà chúng ta nên hiểu rõ. Trên thực tế, biến tĩnh mang lại nhiều lợi ích đáng kể cho chương trình của bạn. Hôm nay, chúng ta sẽ cùng nhau tìm hiểu về biến tĩnh trong C++.

Tổng quan về biến tĩnh

Biến tĩnh là những biến được tạo ra một lần duy nhất khi gọi hàm lần đầu tiên và tồn tại trong suốt vòng đời của chương trình. Điều này tạo được sự khác biệt so với biến cục bộ, mà chỉ tồn tại trong khối lệnh mà biến đó được định nghĩa.

Biến tĩnh mang tính chất lưỡng tính, tức là nó vừa có tính chất của biến toàn cục vừa mang tính chất của biến cục bộ. Tính chất của biến toàn cục cho phép nó tồn tại và được cập nhật khi khối lệnh đó được gọi lại, trong khi tính chất của biến cục bộ chỉ cho phép sử dụng biến trong khối lệnh mà nó được khai báo.

Ví dụ, trong chương trình dưới đây:

#include 
using namespace std;

void doSomeThing_static() {
    static int s_value(0);
    ++s_value;
    cout << s_value << endl;
}

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

Kết quả khi chạy chương trình sẽ là:

1
2
3

Như bạn có thể thấy, giá trị của biến tĩnh s_value được duy trì và tăng lên mỗi lần gọi hàm. Điều này cho phép chúng ta lưu trữ thông tin quan trọng và sử dụng nó trong toàn bộ chương trình.

Khi nào nên sử dụng biến tĩnh

Bạn nên sử dụng biến tĩnh khi có nhu cầu giữ giá trị của biến trong suốt vòng đời của chương trình. Ví dụ, nếu bạn muốn tạo các ID không trùng nhau trong chương trình của mình, biến tĩnh sẽ là lựa chọn lý tưởng:

#include 
#include 
using namespace std;

int generateID() {
    static int s_id(0);
    ++s_id;
    return s_id;
}

int main() {
    int nID1 = generateID();
    string strName1("Kteam");
    int nID2 = generateID();
    string strName2("FreeEducation");
    int nID3 = generateID();
    string strName3("HowKteam.com");

    cout << nID1 << " : " + strName1 << endl;
    cout << nID2 << " : " + strName2 << endl;
    cout << nID3 << " : " + strName3 << endl;

    return 0;
}

Kết quả khi chạy chương trình sẽ là:

1 : Kteam
2 : FreeEducation
3 : HowKteam.com

Như bạn có thể thấy, giá trị của biến tĩnh s_id được tăng lên sau mỗi lần gọi hàm generateID(), và đảm bảo rằng các ID được tạo ra là duy nhất và không trùng nhau.

Kết luận

Qua bài viết này, chúng ta đã tìm hiểu về tính năng biến tĩnh trong ngôn ngữ lập trình C++. Biến tĩnh là một công cụ mạnh mẽ giúp bạn giữ giá trị và sử dụng chúng trong suốt vòng đời của chương trình. Bài viết tiếp theo sẽ giới thiệu về biến tĩnh khác, là biến tĩnh có phạm vi (scope) nằm trong một lớp (class). Đừng quên tiếp tục theo dõi để không bỏ lỡ những kiến thức mới nhé!

Nếu có bất kỳ thắc mắc hoặc góp ý nào về bài viết này, hãy để lại bình luận của bạn để chúng tôi cùng phát triển. Cảm ơn bạn đã đọc và hẹn gặp lại trong các bài viết tiếp theo!

1