Thứ Ba, 28 tháng 9, 2021

5: Cách khai báo biến cục bộ và biến toàn cục trong C

 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 world";// khai báo chuỗi kí tự tên là s có giá trị là Hello world


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


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;

}

0 bình luận:

Đăng nhận xét