JavaScript is required

A program can use the address of any variable in an expression, except variables declared with the ___ storage class.

A.
static
B.
register
C.
auto
Trả lời:

Đáp án đúng: B


Trong C/C++, một chương trình có thể sử dụng địa chỉ của hầu hết các biến trong một biểu thức. Tuy nhiên, có một ngoại lệ quan trọng: các biến được khai báo với storage class `register`. * **register:** Các biến `register` được đề xuất để lưu trữ trong thanh ghi của CPU, thay vì trong bộ nhớ RAM thông thường. Việc này nhằm mục đích tăng tốc độ truy cập biến. Tuy nhiên, trình biên dịch có quyền bỏ qua đề xuất này và xử lý biến `register` như một biến `auto` thông thường. Điều quan trọng là, bạn không thể lấy địa chỉ của một biến `register` bằng toán tử `&` (address-of operator) vì chúng có thể không có địa chỉ bộ nhớ cố định. * **auto:** Các biến `auto` là các biến cục bộ (local variables) được khai báo bên trong một hàm hoặc khối mã. Chúng có thời gian tồn tại (lifetime) giới hạn trong phạm vi của khối mã mà chúng được khai báo. Địa chỉ của các biến `auto` hoàn toàn có thể được lấy và sử dụng. * **static:** Các biến `static` có thể là biến cục bộ hoặc biến toàn cục. Biến `static` cục bộ chỉ được khởi tạo một lần và giữ giá trị của nó giữa các lần gọi hàm. Biến `static` toàn cục chỉ có thể truy cập được trong phạm vi của file mà nó được khai báo. Địa chỉ của các biến `static` hoàn toàn có thể được lấy và sử dụng. Do đó, đáp án đúng là B. register.

Câu hỏi liên quan