Computer >> Máy Tính >  >> Lập trình >> C ++

Sự khác biệt giữa ++ * p, * p ++ và * ++ p trong c ++

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’.