GIÁO TRÌNH C++ - Trang 44

Cần phải cảnh báo bạn rằng cả hai toán tử tăng (

++

) và giảm (

--

) đều có quyền

ưu tiên lớn hơn toán tử tham chiếu (

*

), vì vậy biểu thức sau đây có thể dẫn tới

kết quả sai:

*p++;

*p++ = *q++;

Lệnh đầu tiên tương đương với

*(p++)

điều mà nó thực hiện là tăng

p

(địa chỉ ô

nhớ mà nó trỏ tới chứ không phải là giá trị trỏ tới).
Lệnh thứ hai, cả hai toán tử tăng (

++

) đều được thực hiện sau khi giá trị của

*q

được gán cho

*p

và sau đó cả q và p đều tăng lên 1. Lệnh này tương đương với:

*p = *q;

p++;

q++;

Như đã nói trong các bài trước, tôi khuyên các bạn nên dùng các cặp ngoặc đơn
để tránh những kết quả không mong muốn.

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.