Menu
CoddyTech

Toán tử giải tham chiếu

Thuộc phần Logic và luồng chương trình trong hành trình C++ của Coddy. Bài học 3 trên 56.

Bây giờ bạn đã biết cách lấy con trỏ đến một biến, bạn cần học cách truy cập và sửa đổi giá trị tại địa chỉ bộ nhớ đó. Đây là lúc toán tử giải tham chiếu (*) trở nên thiết yếu.Theoán tử giải tham chiếu * dùng để truy cập giá trị được lưu tại địa chỉ bộ nhớ mà con trỏ trỏ đến. Khi đặt * trước một biến con trỏ, toán tử này sẽ “theo” địa chỉ đó và cho bạn giá trị thực tế được lưu tại đó.Hãy nhớ rằng toán tử lấy địa chỉ (&) dùng để lấy địa chỉ bộ nhớ của một biến, còn toán tử giải tham chiếu (*) dùng để truy cập giá trị tại địa chỉ đó.
int number = 42;
int* ptr = &number;  // ptr lưu địa chỉ của number
int value = *ptr;    // value giờ chứa 42
Bạn cũng có thể dùng toán tử giải tham chiếu để sửa đổi biến ban đầu thông qua con trỏ. Khi gán giá trị mới cho *ptr, thực chất bạn đang thay đổi giá trị được lưu tại vị trí bộ nhớ đó:
*ptr = 100;  // Đổi giá trị của number thành 100
// number hiện có giá trị 100, dù ta đã thay đổi nó thông qua ptr
Khả năng truy cập gián tiếp này khiến con trỏ trở nên mạnh mẽ đến vậy: bạn có thể đọc và sửa đổi các biến ở bất cứ đâu trong chương trình, miễn là bạn có con trỏ trỏ đến chúng.
challenge icon

Thử thách

Dễ

Tạo một chương trình minh họa toán tử giải tham chiếu (dereference operator) bằng cách thay đổi giá trị của một biến thông qua con trỏ.

Chương trình sẽ nhận đầu vào sau:

  • Một số nguyên làm giá trị ban đầu cho một biến
  • Một số nguyên làm giá trị mới để gán thông qua con trỏ

Chương trình của bạn cần:

  1. Khai báo một biến số nguyên có tên temperature và khởi tạo biến này bằng giá trị đầu vào thứ nhất
  2. Tạo một con trỏ có tên tempPtr trỏ đến biến temperature
  3. In ra giá trị ban đầu bằng cách giải tham chiếu con trỏ
  4. Dùng toán tử giải tham chiếu để thay đổi giá trị của temperature thành giá trị đầu vào thứ hai thông qua con trỏ
  5. In ra giá trị mới bằng cách giải tham chiếu con trỏ một lần nữa

Dùng định dạng đầu ra chính xác sau:

Original value: [original value]
New value: [new value]

Tự làm thử

    // TODO: Viết code của bạn bên dưới
    // 1. Khai báo biến temperature và khởi tạo bằng initialValue
    // 2. Tạo con trỏ tempPtr trỏ đến temperature
    // 3. In ra giá trị ban đầu bằng cách giải tham chiếu con trỏ
    // 4. Đổi giá trị của temperature thông qua con trỏ bằng newValue
    // 5. In ra giá trị mới bằng cách giải tham chiếu con trỏ
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch C++ online