Trong phần này, chúng ta sẽ xem sự khác biệt giữa * ptr ++, * ++ ptr và ++ * ptr trong C ++.
Ở đây chúng ta sẽ thấy thứ tự ưu tiên của postfix ++ và prefix ++ trong C hoặc C ++. Mức độ ưu tiên của tiền tố ++ hoặc - có mức ưu tiên cao hơn toán tử dereference ‘*’ và hậu tố ++ hoặc - có mức ưu tiên cao hơn cả tiền tố ++ và toán tử dereference ‘*’.
Khi ptr là một con trỏ, thì * ptr ++ chỉ ra * (ptr ++) và ++ * prt tham chiếu đến ++ (* ptr)
Mã mẫu
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; ++*ptr; cout << *ptr; return 0; }
Đầu ra
I
Vì vậy, ở đây lúc đầu ptr là trỏ ‘H’. sau khi sử dụng ++ * ptr, nó tăng H lên 1 và bây giờ giá trị là ‘I’.
Mã mẫu (C ++)
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; *ptr++; cout << *ptr; return 0; }
Đầu ra
e
Vì vậy, ở đây lúc đầu ptr là trỏ ‘H’. sau khi sử dụng * ptr ++ nó tăng con trỏ, vì vậy ptr sẽ trỏ đến phần tử tiếp theo. vì vậy kết quả là ‘e’.
Mã mẫu (C ++)
#include<iostream> using namespace std; int main() { char arr[] = "Hello World"; char *ptr = arr; *++ptr; cout << *ptr; return 0; }
Đầu ra
e
Trong ví dụ này, chúng tôi cũng đang tăng ptr bằng cách sử dụng ++, trong đó mức độ ưu tiên của tăng trước ++ cao hơn, sau đó nó tăng con trỏ trước, sau đó lấy giá trị bằng cách sử dụng *. vì vậy nó đang in chữ ‘e’.