ที่นี่เราจะดู precedence ของ postfix++ และ prefix++ ใน C หรือ C++ Precedence ของ prefix ++ หรือ -- สูงกว่า dereference operator '*' และ postfix ++ หรือ -- มี priority สูงกว่าทั้ง prefix ++ และ dereference operator '*'
เมื่อ ptr เป็น pointer *ptr++ หมายถึง *(ptr++) และ ++*ptr หมายถึง ++(*ptr)
ตัวอย่าง
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; ++*ptr; cout << *ptr; return 0; }ผลลัพธ์
I
ptr ชี้ 'H' ก่อน หลัง ++*ptr เพิ่ม H ขึ้น 1 กลายเป็น 'I'
ตัวอย่าง
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; *ptr++; cout << *ptr; return 0; }ผลลัพธ์
e
ptr ชี้ 'H' ก่อน หลัง *ptr++ เพิ่ม pointer ptr ชี้ element ถัดไป คือ 'e'