Quy tắc phạm vi trong lập trình C

Quy tắc phạm vi trong C là nội dung nhất định bạn cần phải biết khi tìm hiểu về ngôn ngữ lập trình này. Dưới đây là mọi điều bạn cần biết về quy tắc phạm vi trong C.

C là một trong ngôn ngữ lập trình lâu đời nhất hiện nay. Ra đời vào năm 1970, tính tới nay, C đã góp phần tạo nên hàng trăm nghìn web, ứng dụng trên thế giới. Điều đó cho thấy sức hút của C vẫn không hề thua kém so với các ngôn ngữ lập trình mới hiện nay.

Học lập trình bằng C không khó nếu bạn chịu khó dành thời gian tìm hiểu và luyện tập chăm chỉ. Bạn có thể tham khảo các bài học lập trình C cơ bản trên Quantrimang.com với những bài thực hành kèm đáp án cụ thể. Ở bài viết này, hãy cùng nhau tìm hiểu về quy tắc phạm vi trong C.

Như bạn đã biết, một phạm vi trong chương trình bất kỳ là một khu vực định nghĩa biến tồn tại. Nếu nằm ngoài phạm vi đó, biến không thể được truy cập. Ngôn ngữ lập trình C cung cấp 3 nơi khai báo biến, bao gồm:

  1. Bên trong một hàm hoặc một khối code được gọi là biến cục bộ.
  2. Bên ngoài tất cả các hàm và được gọi là biến toàn cục.
  3. Trong định nghĩa các hàm, các tham số được gọi là các tham số chính thức - formal.

Bây giờ chúng ta cùng tìm hiểu các biến cục bộ và biến toàn cục và các tham số chính thức là gì.

Biến cục bộ trong C

Biến cục bộ được khai báo bên trong một hàm hoặc khai báo bên trong một khối code. Chúng được sử dụng bởi các lệnh trong hàm hoặc khối code đó. Biến cục bộ không được sử dụng bên ngoài của hàm. Dưới đây là ví dụ về việc sử dụng biến cục bộ. Tại đây biến a,b và c được sử dụng trong hàm main():

#include <stdio.h>
 
int main ()
{
  /* Khai bao bien cuc bo */
  int a, b;
  int c;
 
  /* khoi tao thuc su */
  a = 10;
  b = 20;
  c = a + b;
 
  printf ("Gia tri cua a = %d, b = %d va c = %d\n", a, b, c);
 
  return 0;
}

Biến toàn cục trong C

Biến toàn cục được định nghĩa bên ngoài một hàm, thường là phần đầu của chương trình. Biến toàn cục có thể chứa các giá trị trong thời gian chương trình chạy và có thể được truy cập bởi bất kì hàm nào định nghĩa trong chương trình.

Một biến toàn cục có thể được truy cập bởi bất kì hàm nào. Điều đó nghĩa là biến toàn cục được sử dụng suốt chương trình sau khi nó khai báo. Dưới đây là ví dụ minh họa cho biến cục bộ và toàn cục:

#include <stdio.h>
 
/* Khai bao bien toan cuc */
int g;
 
int main ()
{
  /* Khai bao bien cuc bo */
  int a, b;
 
  /* khoi tao bien thuc su */
  a = 10;
  b = 20;
  g = a + b;
 
  printf ("Gia tri cua a = %d, b = %d va g = %d\n", a, b, g);
 
  return 0;
}

Một chương trình có thể có biến toàn cục và cục bộ trùng tên. Trong trường hợp đó biến cục bộ bên trong hàm sẽ được ưu tiên sử dụng. Dưới đây là ví dụ:

#include <stdio.h>
 
/* Khai bao bien toan cuc */
int g = 20;
 
int main ()
{
  /* khai bao bien cuc bo */
  int g = 10;
 
  printf ("Gia tri cua g = %d\n",  g);
  printf("\n===========================\n");
  printf("QTM chuc cac ban hoc tot! \n");
 
  return 0;
}

Chạy chương trình C trên để biên dịch và chạy để xem kết quả:

Tham số chính thức trong C

Tham số hàm, tham số chính thức được coi như biến local bên trong hàm đó và thường có giá trị ưu tiên hơn biến toàn cục. Dưới đây là ví dụ:

#include <stdio.h>
 
/* khai bao bien toan cuc */
int a = 20;
/* khai bao ham */
int hamtinhtong(int a, int b);
 
int main ()
{
  /* khai bao bien cuc bo trong ham main */
  int a = 15;
  int b = 25;
  int c = 0;

  printf ("Gia tri cua a trong ham main() = %d\n",  a);
  c = hamtinhtong( a, b);
  printf ("Gia tri cua c trong ham main() = %d\n",  c);
  
  printf("\n===========================\n");
  printf("QTM chuc cac ban hoc tot! \n");

  return 0;
}

/* ham de cong hai so nguyen */
int hamtinhtong(int a, int b)
{
    printf ("Gia tri cua a trong ham hamtinhtong() = %d\n",  a);
    printf ("Gia tri cua b trong ham hamtinhtong() = %d\n",  b);

    return a + b;
}

Chạy chương trình C trên để biên dịch và chạy để xem kết quả:

Khởi tạo biến toàn cục và biến cục bộ

Khi biến toàn cục và biến cục bộ được định nghĩa, nó không được khởi tạo bởi chương trình, nó phải khởi tạo bởi chính bản thân bạn. Biến toàn cục thường khởi tạo tự động bởi chương trình khi bạn định nghĩa chúng như dưới đây:

Kiểu dữ liệuGiá trị khởi tạo mặc định
int0
char'\0'
float0
double0
pointerNULL

Thường trong thực tế lập trình bạn nên khởi tạo các giá trị biến một cách chính xác, nếu không chương trình của bạn có thể gây ra những kết quả không mong muốn .

Theo Tutorialspoint

Bài trước: Hàm trong lập trình C

Bài tiếp: Mảng trong Ngôn ngữ C

Thứ Bảy, 28/01/2023 11:49
51 👨 1.873
1 Bình luận
Sắp xếp theo
  • Code Ngầu
    Code Ngầu oK
    Thích Phản hồi 01/07/20
    ❖ Lập trình C