Bài tập

Bài 5: Cách khai báo biến cục bộ và biến toàn cục trong ngôn ngữ C

Huy Erick

Chào mừng các bạn đến với bài viết thứ 5 trong serie Học lập trình C từ A tới Z. Trong bài này, chúng ta sẽ tìm hiểu về cách khai báo biến cục bộ...

Chào mừng các bạn đến với bài viết thứ 5 trong serie Học lập trình C từ A tới Z. Trong bài này, chúng ta sẽ tìm hiểu về cách khai báo biến cục bộ và biến toàn cục, và phạm vi hoạt động của chúng ra sao. Bên cạnh đó, cũng sẽ có một số bài tập giúp bạn làm quen với cách khai báo biến.

Biến là gì?

Trước khi bắt đầu, hãy hiểu rõ về khái niệm biến. Biến trong lập trình là một vùng bộ nhớ dùng để lưu trữ và thay đổi dữ liệu trong quá trình chạy chương trình. Việc khai báo biến được thực hiện để xác định kiểu dữ liệu và tên biến.

Cú pháp khai báo biến trong ngôn ngữ C như sau: ;

Ví dụ:

int a;
float b;

Chúng ta cũng có thể gán giá trị ban đầu cho biến khi khai báo:

int a = 100; // biến a có giá trị là số nguyên 100
float b = 0.1; // biến b có giá trị là số thực 0.1
char c = 'A'; // biến c có giá trị là kí tự 'A'
string s = "Xin chào"; // biến s là chuỗi kí tự "Xin chào"

Có ba loại biến cơ bản:

  • Biến cục bộ (local variables)
  • Biến toàn cục (global variables)
  • Các biến đặc biệt như static, volatile, register, ...

Khai báo biến cục bộ và tính chất của chúng

Biến cục bộ là biến được khai báo trong một hàm và chỉ tồn tại và sử dụng trong phạm vi của hàm đó. Biến cục bộ sẽ được cấp phát bộ nhớ khi hàm được gọi và sẽ được giải phóng khi hàm kết thúc thực thi.

Các biến cục bộ có thể có cùng tên nhưng khai báo trong các hàm khác nhau mà vẫn có thể sử dụng bình thường. Ví dụ, nếu có hai biến x trong hai hàm khác nhau, thì đây là hai biến hoàn toàn độc lập. Tuy nhiên, nếu có hai biến x cùng trong một hàm, đó sẽ dẫn đến lỗi.

#include 

void nha_a(void) {
    int a; // biến cục bộ sẽ bị giải phóng khi hàm kết thúc
    a = 100;
    printf("a của nhà A = %d\n", a);
}

void nha_b(void) {
    int a; // biến cục bộ sẽ bị giải phóng khi hàm kết thúc
    a = 200;
    printf("a của nhà B = %d\n", a);
}

int main() {
    nha_a();
    nha_b();
    return 0;
}

Kết quả:

a của nhà A = 100
a của nhà B = 200

Khai báo biến toàn cục và tính chất của chúng

Với biến toàn cục, chúng ta có thể khai báo biến bên ngoài các hàm và sử dụng nó trong mọi hàm trong chương trình. Biến toàn cục được cấp phát bộ nhớ khi chương trình chạy và giải phóng khi chương trình kết thúc.

Các biến toàn cục chỉ có thể sử dụng trong cùng một file .c. Nếu muốn sử dụng biến toàn cục trong file .c khác, ta phải sử dụng từ khóa extern khi khai báo biến toàn cục.

#include 

int a = 5;

int cong(int x, int y) {
    int a = x + y;
    return a;
}

int main() {
    int kq = cong(1, 2);
    printf("Kết quả: %d\n", kq);
    return 0;
}

Kết quả:

Kết quả: 3

Kết

Biến toàn cục và biến cục bộ là hai khái niệm cơ bản trong khai báo biến trong ngôn ngữ C. Ngoài ra, còn nhiều kiểu biến đặc biệt khác mà chúng ta sẽ tìm hiểu trong tương lai. Hãy nhớ rõ các tính chất của các biến để khai báo sao cho phù hợp. Một lời khuyên cuối cùng là hãy đặt tên biến sao cho rõ ràng, tránh khai báo các biến chỉ có một kí tự như a, b, c, d,... Đọc bài viết "Clean code" để hiểu rõ lý do tại sao nhé.

Ok, chúng ta đã hoàn thành bài viết thứ 5. Hãy sẵn sàng cho bài viết tiếp theo trong serie Học lập trình C từ A tới Z nhé. Đừng quên gia nhập Hội Anh Em Nghiện Lập trình để giao lưu và học hỏi thêm nhé!

1