Toán tử tham chiếu ngược*

Một phần của tài liệu Giáo trình lập trình hướng đối tượng c trường cao đẳng công nghiệp huế (Trang 79 - 80)

Một biến tham chiếu đến biến khác gọi là con trỏ. Con trỏ sẽ trỏ đến biến tham chiếu. Bằng việc sử dụng con trỏ, chúng ta có thể truy cập trực tiếp đến giá trị của biến được tham chiếu đến. Để thực thi được điều này, chúng ta đặt trước định danh của biến trỏ dấu *, khi đó, nó đóng vai trò là toán tử tham chiếu ngược và nó có thể gọi là “giá trị trỏ bởi”.

Bởi vậy, chúng ta có thể viết như sau

beth = *ted;

Chúng ta có thể gọi: beth tương ứng với giá trị trỏ bởi ted. Để minh họa điều này, chúng ta có thể tham khảo lược đồ sau:

ted 1776 1775 1776 1777 25 bộ nhớ 25 beth Hình 1.3 – Tham chiếu ngược trong con trỏ Lược đồ này tương ứng với đoạn chương trình sau

beth = ted;//beth tương ứng với ted

C

+

+

Cần phân biệt chính xác giữa biến ted trỏ đến giá trị 1776, trong khi *ted trỏ đến giá trị lưu tại ô 1776, tức là 25. Như vậy, chúng ta cần phải phân biệt một cách chính xác hai toán tử: toán tử tham chiếu & và toán tử tham chiếu ngược*.

Toán tử tham chiếu &: đọc là địa chỉ của.

Toán tử tham chiếu ngược *: đọc là giá trị trỏ bởi.

Như vậy, một biến có thể tham chiếu nhờ toán tử & và có thể tham chiếu ngược bởi toán tử *.

Giả sử chúng ta có int andy = 25; int *ted = &andy;

Khi đó, các biểu thức sau đây sẽ cho giá trị đúng (giả sử địa chỉ của biến andy được lưu tại ô nhớ 1776)

andy == 25;

&andy == ted;//=1776 *ted == 25;

Ta có thể phát biểu tổng quát biểu thức *ted = &andy như sau: con trỏ *ted trỏ vào địa chỉ của andy, tương ứng với địa chỉ này của ô nhớ, ta có thể nhận được giá trị tương ứng là giá trị lưu tại ô nhớ này.

Một phần của tài liệu Giáo trình lập trình hướng đối tượng c trường cao đẳng công nghiệp huế (Trang 79 - 80)