Lớp lưu trữ (Storage Class) trong C

Trong bài học C++ trước bạn đọc đã cùng Taimienphi.vn tìm hiểu về phạm vi biến và modifier trong C++ là gì. Bài viết dưới đây Taimienphi.vn sẽ giới thiệu tiếp cho bạn về lớp lưu trữ (Storage Class) trong C++.

Như chúng ta đã biết, mỗi biến có một kiểu dữ liệu. Để định nghĩa đầy đủ một biến, ngoài kiểu dữ liệu, chúng ta còn cần lớp lưu trữ (Storage Class). Để tìm hiểu về lớp lưu trữ (Storage Class) trong C++ là gì, bạn đọc cùng tham khảo bài viết dưới đây của Taimienphi.vn.

lop luu tru storage class trong c

 

 

1. Lớp lưu trữ (Storage Class) trong C++

Như Taimienphi.vn đã đề cập ở trên, để định nghĩa đầy đủ một biến, ngoài kiểu dữ liệu, chúng ta còn cần lớp lưu trữ (Storage Class).

Khi chúng ta không định nghĩa lớp lưu trữ, trình biên dịch sẽ tự động gán một lớp lưu trữ mặc định cho nó. Lớp lưu trữ của biến cung cấp các thông tin về vị trí lưu trữ của biến trong bộ nhớ, giá trị mặc định ban đầu, phạm vi và vòng đời của biến.

C++ hỗ trợ các lớp lưu trữ bao gồm auto, register, static, extern và mutable.

 

 

2. Lớp lưu trữ auto trong C++

Lớp lưu trữ auto được sử dụng cho các biến cục bộ - biến chỉ hiển thị bên trong hàm được khai báo và sẽ biến mất ngay khi quá trình thực thi kết thúc. Nếu không được khởi tạo, các biến của lớp auto sẽ tự động gán các giá trị rác.

Dưới đây là ví dụ minh họa cách mà biến của lơp auto được khai báo:

int var; // by default, storage class is auto

auto int var;

 

3. Lớp lưu trữ Register trong C++

Các biến của lớp register được lưu trữ trong thanh ghi CPU thay vì bộ nhớ, cho phép truy cập nhanh hơn.

Phạm vi của các biến là hàm cục bộ, trong đó hàm được định nghĩa và biến mất ngay khi quá trình thực thi kết thúc. Nếu không được khởi tạo, nó sẽ chứa các giá trị rác. Khai báo lớp register trong C++ có dạng như dưới đây:

register int var;

 

 

4. Lớp lưu trữ static trong C++

Phạm vi của biến static là hàm cục bộ mà hàm đó được định nghĩa nhưng không biến mất khi quá trình thực thi hàm kết thúc.

Giá trị của một biến static tồn tại giữa các lệnh gọi hàm. Giá trị mặc định ban đầu của biến static là 0. Chương trình dưới đây minh họa biến static trong C++:

lop luu tru storage class trong c

 

 

5. Lớp lưu trữ Extern trong C++

Các biến của lớp lưu trữ Extern có phạm vi toàn cục. Chúng ta sử dụng các biến Extern nếu muốn biến hiển thị bên ngoài file đã được khai báo.

Vì vậy một biến extern có thể được chia sẻ trên nhiều file khác nhau. Biến extern vẫn tồn tại, miễn là chương trình tiếp tục được thực thi. Một biến static toàn cục chỉ hiển thị bên trong file mà nó được khai báo, nhưng một biến extern toàn cục được hiển thị trên tất cả các file của một chương trình.

Chúng ta có thể sử dụng khai báo và định nghĩa một biết có thể thay thế, nhưng lớp lưu trữ extern sẽ khác nhau.

Nói một cách đơn giản:

extern int count; // khai báo biến 'count'

int count; // định nghĩa biến 'count'

Khai báo và định nghĩa một biến trong các file khác nhau có thể khác nhau.

Cho ví dụ, chương trình dưới đây minh họa cách sử dụng lớp extern:

lop luu tru storage class trong c 2

lop luu tru storage class trong c 3

Trong chương trình trên, biến count được khai báo trong một file, file đó lại được định nghĩa trong một file khác. Biến count có thể được truy cập và sửa đổi trong các file bất kỳ và giá trị của nó được phản ánh trong cả 2 file.

 

 

6. Lớp lưu trữ mutable trong C++

Lớp lưu trữ mutable chỉ sử dụng cho các thành viên lớp dữ liệu. Lớp là kiểu dữ liệu do người dùng định nghĩa và đối tượng là biến của kiểu lớp.

Trong một chương trình, biến không thể sửa đổi được, tương tự các đối tượng cũng không thể sửa đổi. Nếu một thành viên dữ liệu của lớp được khai báo là mutable, tức là nó có thể sửa đổi được bởi một đối tượng được khai báo là constant.

Để dễ hình dung hơn, bạn đọc cùng tham khảo chương trình dưới đây:

lop luu tru storage class trong c 4

https://thuthuat.taimienphi.vn/lop-luu-tru-storage-class-trong-c-45781n.aspx
Như vậy bài viết trên đây Taimienphi.vn vừa giới thiệu cho bạn về lớp lưu trữ (Storage Class) trong C++. Ngoài ra bạn đọc có thể tham khảo thêm một số bài viết khác đã có trên Taimienphi.vn để tìm hiểu rõ hơn về Modifier cũng như Constant và Literal trong C++, trong ngôn ngữ lập trình C,constant (hằng) là các giá trị "cố định", còn cácgiá trị không thể thay đổi trong chương trình chúng ta gọi là literal, bài viết về Constant và Literal trong C sẽ nói cụ thể về các hằng này để bạn hiểu rõ hơn.

Tác giả: Phạm Nhất Vương     (4.0★- 3 đánh giá)  ĐG của bạn?

  

Bài viết liên quan

Mảng (array) trong C (phần 3)
Hàm trong C
Input và Output trong C
Sửa lỗi "Installation Did Not Succeed" khi cài .Net Framework
Cấu trúc dữ liệu trong C
Từ khoá liên quan:

Lớp lưu trữ (Storage Class) trong C++

, học C++, Storage Class trong C++,

SOFT LIÊN QUAN
  • C# và .NET Framework

    Lập trình với C#, trong môi trường .NET Framework

    Tài liệu C# và .NET Framework trình bày các vấn đề về lập trình bằng C# và môi trường .NET Framework , mối quan hệ giữa C# và .NET Framework . C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Microsoft cò ...

Tin Mới

  • Cách sử dụng As soon as trong tiếng Anh

    As soon as là một trong những liên từ được sử dụng rất phổ biến trong tiếng Anh, vì vậy, các bạn cần nắm bắt được cách sử dụng As soon as trong tiếng Anh để có được kiến thức hữu ích giúp cho việc học tiếng Anh của mình

  • Cách phát âm đuôi -ed trong tiếng Anh

    Để các bạn có thể biết được các phát âm các từ đuôi -ed được chính xác nhất, bài viết này sẽ giới thiệu đến các bạn nội dung cách phát âm đuôi -ed trong tiếng Anh, qua đó, các bạn có thể giải quyết được những bài tập

  • Số thứ tự trong tiếng Anh, cách viết, đọc

    Số thứ tự trong tiếng Anh, cách viết, đọc không giống với việc viết các số đếm, số thứ tự, cụ thể, các bạn chỉ cần nắm được khoảng 20 số thứ tự đầu tiên, các bạn đã có thể dễ dàng biết đọc và ghép tất cả các số thứ tự

  • Code Free Fire tháng 4/2025, giftcode FF OB48 vĩnh viễn mới nhất

    Free Fire là một trong những tựa game hành động nổi tiếng với cộng đồng đông đảo game thủ trên toàn thế giới. Để tăng cường trải nghiệm, Garena thường xuyên phát hành các mã Code Free Fire giúp người chơi nhận các phần thưởng giá trị như kim cương, skin vũ khí, trang phục và nhiều vật phẩm hấp dẫn khác.