Trong bài này chúng ta sẽ học cách khai báo biến cục bộ và biến toàn cục, phạm vi hoạt động của các biến như thế nào? Cũng như làm một số bài tập liên quan tới việc khai báo biến.
Đây là những kĩ năng cơ bản nhất khi học lập trình, hãy nhớ kĩ các tính chất của nó nhé
Biến là gì?
Giá trị của biến có thể thay đổi bất cứ lúc nào trong suốt quá trình mà chương trình chạy. Biến được dùng để lưu trữ dữ liệu mà cần được thay đổi trong quá trình chương trình thực hiện.
Cú pháp khai báo biến: <kiểu dữ liệu><dấu cách><tên biến>;
VD:
int a;
float b;
Chúng ta có thể gán giá trị ban đầu cho biến khi khai báo. VD:
int a = 100; // khai báo biến tên a có giá trị là kiểu số nguyên 100
float b = 0.1; // khai báo biến tên b có giá trị là kiểu số thực 0.1
char c="A"; // khai báo kí tự tên là C có giá trị là kí tự A
string s = "Hello anh em";// khai báo chuỗi kí tự tên là s có giá trị là Hello anh em
Có 3 loại biến cơ bản:
- Biến cục bộ
- Biến toàn cục
- Các biến đặc biệt static, volatite, register …
Khai báo biến cục bộ và tính chất của chúng
Biến cục bộ, là các biến được khai báo trong một hàm. Biến đó sẽ chỉ có thể tồn tại và sử dụng bên trong hàm. Biến cục bộ sẽ được cấp phát 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ộ trong các hàm có tên giống nhau nhưng khai báo trong các hàm khác nhau vẫn có thể sử dụng bình thường.
Ví dụ như thế này cho dễ hiểu. Có 2 người tên là Hương nhưng 1 Hương ở nhà A và 1 ở nhà B, thì đó là 2 người hoàn toàn khác nhau. Nhưng nếu có 2 Hương trong cùng 1 nhà A thì sẽ dẫn tới lỗi.
#include <stdio.h> 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 cua nha_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 cua nha_b = %d n", a); } int main() { nha_a(); nha_b(); return
Kết quả
Khai báo biến toàn cục tính chất của chúng
Với biến toàn cục, là biến được khai báo bên ngoài hàm, có thể được truy xuất và sử dụng ở 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 hoạt động 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 file.c đó, nếu muốn sử dụng trong file.c khác chúng ta phải sử dụng từ khóa extern khi khai báo biến toàn cục
Trong 1 chương trình C, ta có thể khai báo biến toàn cục và biến cục bộ có tên giống nhau. Nhưng khi ở trong hàm, hàm sẽ ưu tiên sử dụng biến cục bộ được khai báo. VD:
#include <stdio.h> int a = 5; int cong(int x, int y) { int a = x+y; return a; } int main() { int kq = cong(1,2); printf("Ket qua %d",kq); return 0; }
Kết quả
Kết
Biến toàn cục và biến cục bộ là 2 khái niệm cơ bản nhất khi khai báo biến trong C. Ngoài ra còn một số kiểu biến đặc biệt chúng ta sẽ học thêm sau này. Nên nhớ rõ các tính chất của các biến để khai báo cho phù hợp.
Một lời khuyên đó là các bạn không nên khai báo các biến chỉ có 1 kí tự như a,b,c,d… mà hãy đặt tên cho chúng. Hãy đọc bài Viết Clean code để hiểu lý do tại sao nhé.
Ok, chuyển qua bài tiếp theo trong Serie Học lập trình C từ A tới Z nào.
Đừng quên gia nhập Hội Anh Em Nghiện Lập trình để giao lưu và học hỏi nhé.