3.2.2 Phép toán số học trên pointer (1)

Phép toán số học của con trỏ có sự khác biệt đáng kể so với số học số nguyên vì nó tương đối đơn giản và chỉ cho phép các phép toán sau:
  • Cộng một giá trị số nguyên cho một con trỏ → kết quả là con trỏ (ptr + int → ptr)
  • Trừ một giá trị số nguyên từ một con trỏ → kết quả là con trỏ (ptr – int → ptr)
  • Trừ một con trỏ từ một con trỏ → kết quả là một số nguyên (ptr – ptr → int)
  • So sánh hai con trỏ → kết quả là giá trị kiểu int đại diện cho đúng hoặc sai (ptr == ptr → int; ptr! = ptr → int)
Bất kỳ phép toán nào khác trên con trỏ đều bị cấm hoặc không có ý nghĩa. Đây là những phép toán duy nhất bạn có thể sử dụng. Hãy xem những ví dụ cụ thể sau và cùng thảo luận → Lúc này ptr1 trỏ đến phần tử đầy tiên của mảng array. Sau phép gán này thì ptr2 cũng trỏ đến phần đầu tiên của mảng array → Chúng ta có thể kiểm tra xem 2 con trỏ ptr1 và ptr2 có bằng nhau không (tất nhiên là có vì chúng đang cùng trỏ đến phần tử đầu tiên của mảng array)