JavaScript is required

Phép trừ 1 con trỏ với một số nguyên sẽ là:

A.

Một số nguyên

B.

Một con trỏ cùng kiểu

C.

Cả hai kết quả trên đều đúng

D.

Cả hai kết quả trên đều sai

Trả lời:

Đáp án đúng: B


Phép trừ một con trỏ với một số nguyên trong C/C++ (và các ngôn ngữ tương tự) thực chất là thực hiện phép toán trên địa chỉ bộ nhớ mà con trỏ đang trỏ tới. Khi trừ một số nguyên *n* từ một con trỏ, địa chỉ bộ nhớ mà con trỏ trỏ tới sẽ giảm đi một lượng bằng *n* nhân với kích thước của kiểu dữ liệu mà con trỏ trỏ tới. Do đó, kết quả của phép trừ này là một con trỏ mới (cùng kiểu với con trỏ ban đầu) trỏ tới một vị trí bộ nhớ khác. Ví dụ, nếu `ptr` là một con trỏ kiểu `int` và `sizeof(int)` là 4 byte, thì `ptr - 1` sẽ trả về một con trỏ mới trỏ tới địa chỉ `ptr` trừ đi 4 byte. Vì vậy, đáp án đúng là một con trỏ cùng kiểu.

Câu hỏi liên quan