Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Các lớp lưu trữ (Storage Classes) trong C


Vấn đề

Các lớp lưu trữ khác nhau trong C là gì? Giải thích kèm chương trình.

Giải pháp

Lớp lưu trữ xác định phạm vi và vòng đời của biến/hàm trong chương trình C.

Các lớp lưu trữ

  • auto
  • extern
  • static
  • register

Biến tự động / Cục bộ (auto)

  • Từ khóa – auto
  • Còn gọi là biến cục bộ
  • Phạm vi – Chỉ trong khối lệnh khai báo.
  • Giá trị mặc định – Giá trị rác (garbage).

Ví dụ

#include<stdio.h> void main (){     auto int i=1;{         auto int i=2;{             auto int i=3;             printf ("%d",i);         }         printf("%d", i);     }     printf("%d", i); }

Kết quả

3 2 1

Biến toàn cục / Bên ngoài (extern)

  • Từ khóa – extern
  • Khai báo ngoài khối lệnh, gọi là biến toàn cục.
  • Phạm vi – Toàn chương trình.
  • Giá trị mặc định – 0.

Ví dụ

#include<stdio.h> extern int i =1; /* 'i' này dùng được toàn chương trình */ main (){     int i = 3; /* 'i' này chỉ dùng trong main */     printf ("%d", i);     fun (); } fun (){     printf ("%d", i); }

Kết quả

31

Biến tĩnh (static)

  • Từ khóa – static
  • Phạm vi – Giữ giá trị suốt chương trình và giữa các lần gọi hàm.
  • Khởi tạo chỉ một lần.
  • Giá trị mặc định – 0.

Ví dụ

#include<stdio.h> main (){     inc ();     inc ();     inc (); } inc (){     static int i =1;     printf ("%d", i);     i++; }

Kết quả

1 2 3

Biến thanh ghi (register)

  • Từ khóa – register
  • Giá trị lưu trong thanh ghi CPU thay vì bộ nhớ thường.
  • Thanh ghi là đơn vị lưu trữ tạm trong CPU.

Ví dụ

#include<stdio.h> main (){     register int i;     for (i=1; i< =5; i++)         printf ("%d",i); }

Kết quả

1 2 3 4 5