Quy tắc phạm vi trong C



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

  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;
}
Quảng cáo

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("VietJack chuc cac ban hoc tot! \n");
 
  return 0;
}

Khi chương trình C trên được biên dịch và chạy, kết quả sau sẽ in ra:

Biến toàn cục và biến cục bộ trong C
Quảng cáo

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("VietJack 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;
}

Khi chương trình C trên được biên dịch và chạy, kết quả sau sẽ in ra:

Tham số chính thức trong C

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
int 0
char '\0'
float 0
double 0
pointer NULL

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 .

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

Các bạn có thể mua thêm khóa học JAVA CORE ONLINE VÀ ỨNG DỤNG cực hay, giúp các bạn vượt qua các dự án trên trường và đi thực tập Java. Khóa học có giá chỉ 300K, nhằm ưu đãi, tạo điều kiện cho sinh viên cho thể mua khóa học.

Nội dung khóa học gồm 16 chuơng và 100 video cực hay, học trực tiếp tại https://www.udemy.com/tu-tin-di-lam-voi-kien-thuc-ve-java-core-toan-tap/ Bạn nào có nhu cầu mua, inbox trực tiếp a Tuyền, cựu sinh viên Bách Khoa K53, fb: https://www.facebook.com/tuyen.vietjack

Follow facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học lập trình C phổ biến khác tại VietJack:



Tài liệu giáo viên