Tổng quan
Các lớp lưu trữ C++ giúp xác định thời gian tồn tại và khả năng hiển thị của các biến và hàm trong chương trình C++. Thời gian tồn tại đề cập đến khoảng thời gian cho đến khi một biến hoặc chức năng vẫn hoạt động & khả năng hiển thị là khả năng truy cập của biến hoặc chức năng đã nói so với các phần khác nhau của chương trình. Các lớp lưu trữ giúp xác định tuổi thọ và khả năng truy cập cùng với việc phân bổ bộ nhớ của các biến và chức năng. Có một số lớp lưu trữ; khả năng hiển thị của chúng có thể là toàn cầu hoặc cục bộ.
Phạm vi của Điều khoản
- Bài viết này giải thích các lớp lưu trữ khác nhau trong C++.
- Bài viết này cung cấp tổng quan về khả năng hiển thị của các biến và hàm cũng như phạm vi của chúng.
Các lớp lưu trữ C++ là gì?
Các lớp lưu trữ là trình xác định kiểu trong C++ giúp xác định thời gian tồn tại và khả năng hiển thị của các biến và hàm trong chương trình C++. Các lớp lưu trữ C++ giúp xác định sự tồn tại của một biến hoặc hàm cụ thể trong thời gian chạy của chương trình. Chúng cho chúng ta biết phần nào của chương trình mà chúng ta có thể truy cập vào một biến. Các lớp lưu trữ đặc biệt quan trọng vì chúng xác định cách bất kỳ biến nào có thể được sử dụng trong một chương trình hoặc bất kỳ phương thức nào, đặc biệt là trong phạm vi, thời gian tồn tại và lưu trữ của chúng.
Các lớp lưu trữ cung cấp cho chúng ta thông tin sau về một biến hoặc hàm:
- Phạm vi hoặc một phần của chương trình mà hàm hoặc biến có thể được sử dụng.
- Vị trí lưu trữ hàm hoặc biến.
- Giá trị ban đầu của các biến.
- Thời gian tồn tại của một biến.
- Khả năng truy cập của một biến.
Có một số lớp lưu trữ trong C++. Chúng như sau:
- tự động
- tĩnh
- đăng ký
- bên ngoài
- có thể thay đổi
- thread_local
Mỗi lớp lưu trữ này ngụ ý khả năng hiển thị, thời gian tồn tại và phạm vi khác nhau của các hàm hoặc biến được khai báo với. Khả năng hiển thị hoặc phạm vi của một biến có thể được chia thành hai loại:
- Địa phương
- Toàn cầu
Cú pháp :
Cú pháp sau đây được sử dụng để xác định lớp lưu trữ cho một biến:
storage_class var_data_type var_name;
Trong đó, storage_class chỉ định lớp lưu trữ. var_data_type chỉ định kiểu dữ liệu của biến. var_name chỉ định tên biến.
Các từ khóa sau được sử dụng để chỉ định các lớp lưu trữ khác nhau:
Lưu trữ_Class | từ khóa |
---|---|
Tự động | tự động |
tĩnh | tĩnh |
Đăng ký | đăng ký |
Bên ngoài | bên ngoài |
có thể thay đổi | có thể thay đổi |
chủ đề cục bộ | thread_local |
Biến toàn cục
Biến toàn cục được khai báo bên ngoài tất cả các chức năng của chương trình và phạm vi của chúng bao gồm toàn bộ chương trình. nghĩa là, Nó có thể được sử dụng và sửa đổi bởi tất cả các phần của chương trình. Biến toàn cục được khai báo khi bắt đầu chương trình; tương tự như vậy, thời gian tồn tại của chúng kết thúc vào cuối chương trình.
Các biến toàn cục cũng được khai báo với cú pháp tiêu chuẩn được sử dụng để khai báo các biến:
storage_class var_data_type var_name;
Trong đó, storage_class chỉ định lớp lưu trữ. var_data_type chỉ định kiểu dữ liệu của biến. var_name chỉ định tên biến.
Sau đây là một ví dụ về biến toàn cục:
#include<iostream>
using namespace std;
// Global variable declaration.
int c = 1;
void test() {
// Increment global variable.
c++;
// Print global variable; Output = 2.
cout << c;
}
int main() {
// Calling test function.
test();
// Increment global variable.
c++;
// Print global variable; output = 3.
cout << c;
}
Đầu ra:
23
Trong đoạn mã trên, biến c là biến toàn cục được khai báo bên ngoài tất cả các hàm. Nó có thể được truy cập bằng cả hàm test() và hàm main() .
Biến cục bộ
Một biến được khai báo bên trong hàm, tức là bên trong thân hàm trong dấu ngoặc nhọn, được gọi là biến cục bộ . Phạm vi và thời gian tồn tại của biến cục bộ được giới hạn trong hàm mà nó được xác định. Nói cách khác, một biến cục bộ tồn tại và chỉ có thể được sử dụng trong hàm đã xác định.
Biến cục bộ còn được gọi là biến tự động vì nó tồn tại trong một hàm và thời gian tồn tại của nó sẽ tự động hết hạn bên ngoài hàm.
Biến cục bộ cũng được khai báo với cú pháp tiêu chuẩn được sử dụng để khai báo biến:
storage_class var_data_type var_name;
Trong đó, storage_class chỉ định lớp lưu trữ. var_data_type chỉ định kiểu dữ liệu của biến. var_name chỉ định tên biến.
Đoạn mã sau là một ví dụ về biến cục bộ trong C++:
#include<iostream>
using namespace std;
void test() {
// Declaration of a local variable.
int i = 1;
// Modifying the local variable.
i = i + 11;
// Printing the modified variable; Output= 12.
cout << i;
}
int main() {
// Declaration of another local variable.
int i = 0;
// Calling test() function.
test();
// Printing the local variable; Output=0.
cout << i;
}
Đầu ra:
120
Trong chương trình trên, các biến i đều là biến cục bộ và do đó, chỉ có thể được truy cập bằng hàm mà chúng được khai báo. Do đó, việc gọi hàm test() trong hàm main() không làm thay đổi giá trị của biến i bên trong main() .