CHPV C++ | Phân biệt biến Local, Global, Extern, Static và Const

Biến Local

  • Biến local chỉ tồn tại trong một phạm vi cụ thể và bị hủy khi ra khỏi phạm vi đó.
  • Nội dung hàm cũng là một loại phạm vi, vì vậy biến local chỉ tồn tại trong hàm mà biến được khai báo.
  • Ví dụ:
    void Display() {
      int i; // biến i chỉ tồn tại trong hàm này
      for (i = 0; i < 10; i++) {
          cout << "in ra i: " << i << endl;
      }
    }

    Biến Global

  • Biến global là biến được khai báo bên ngoài tất cả các hàm và có thể sử dụng trong toàn bộ chương trình.
  • Biến global tồn tại đến khi chương trình kết thúc.
  • Đặc biệt, ta có thể khai báo biến global trong một file và truy cập nó từ một file khác bằng từ khóa “extern”.
  • Ví dụ:
    int a = 0; // Biến Global a
    void Display() {
      for (a = 0; a < 3; a++) {
          printf("na = %d", a);
      }
    }

Biến Extern

  • Biến extern là tham chiếu của một biến đã được định nghĩa bên ngoài.
  • Nó chỉ mang ý nghĩa khai báo và không định nghĩa (không cấp phát thêm bộ nhớ cho biến).
  • Biến được tham chiếu phải được khai báo ở cấp độ cao nhất (toàn cục) và có thể nằm trong một file khác.
  • Ví dụ:
    
    // fileA.h
    int bienGlobalA = 0; // Hàm khai báo biến
    void hamGlobalB(); // Hàm khai báo

// fileB.h
extern int GlobalVariable; // Biến được khai báo bên ngoài
void hamGlobalB(); // Hàm khai báo
void hamGlobalC() {
hamGlobalB();
bienGlobalA = bienGlobalA + 1;
}


## Biến Static
- Biến tĩnh là biến chỉ được tạo ra duy nhất một lần 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.
- Biến static mang tính chất của biến toàn cục và biến cục bộ.
- Biến static được sử dụng khi cần giữ giá trị của biến trong chương trình.
- Ví dụ:
```cpp
void callStaticV() {
    static int bienA = 1000;
    bienA++;
    cout << "bienA: " << bienA;
}

Biến Constants (Hằng số trong C++)

  • Định nghĩa hằng số cho những biến, thành phần mà giá trị của chúng không thay đổi trong suốt thời gian chạy của chương trình.
  • Hằng số nên được định nghĩa ở một nơi và sử dụng trong toàn bộ chương trình.
  • Ví dụ:
    
    // MyConstants.h
    namespace myConstants {
      const double PI{ 3.1416 };
      const double TOC_DO_AM_THANH{ 343.2 };
      const int SO_GIAY_CUA_1_PHUT{ 60 };
    }

// main.cpp

using namespace std;

int main() {
cout << “PI = ” << myConstants::PI << endl;
return 0;
}



- Có nhiều cách triển khai hằng số trong chương trình:
(1) Hằng số với từ khóa const: phổ biến và dễ sử dụng.
(2) Hằng số với chỉ thị tiền xử lý #define: trực quan và tối ưu hiệu suất hơn.

Đó là những khái niệm cơ bản về biến local, global, extern, static và const trong C++. Hy vọng bài viết này đã giúp bạn hiểu rõ hơn về chúng và áp dụng thành công vào công việc của mình.

Ảnh minh họa:
![Biến Local, Global, Extern, Static và Const](image.jpg)
*Hình ảnh minh họa về biến Local, Global, Extern, Static và Const với định dạng Markdown*
FEATURED TOPIC