Perbezaan antara *p++ dan (*p)++ ialah: 1. *p++ ialah gabungan pengendali kenaikan postfix, (*p)++ ialah operator kenaikan postfix yang digunakan pada ungkapan *p; . Ungkapan *p++ mula-mula mengembalikan nilai yang ditunjuk oleh "p", dan kemudian menambah "p".
Sistem pengendalian untuk tutorial ini: Sistem Windows 10, versi C18, komputer Dell G3.
Perbezaan antara *p++ dan (*p)++
*p++ dan (*p)++ ialah dua ungkapan berbeza:
*p++: Ini ialah gabungan pengendali kenaikan postfix. Pertama, ungkapan *p akan membatalkan rujukan penunjuk p dan mengembalikan nilai yang ditunjuk oleh penunjuk. Kemudian, penunjuk p dinaikkan dan menunjuk ke elemen seterusnya. Oleh itu, ungkapan ini mula-mula mengembalikan nilai yang ditunjukkan oleh p dan kemudian menambah p.
(*p)++: Ini ialah pengendali kenaikan postfix yang digunakan pada ungkapan *p. Pertama (*p) menolak rujukan penunjuk p dan mengembalikan nilai yang ditunjuk oleh penunjuk. Kemudian, nilainya dinaikkan. Oleh itu, ungkapan ini mula-mula mengembalikan nilai yang ditunjukkan oleh p dan kemudian menambah nilai tersebut.
Berikut ialah contoh kod untuk menggambarkan perbezaan antara kedua-duanya:
#include <iostream> int main() { int arr[] = {1, 2, 3}; int* p = arr; std::cout << *p++ << std::endl; // 输出: 1 std::cout << *p << std::endl; // 输出: 2 p = arr; std::cout << (*p)++ << std::endl; // 输出: 1 std::cout << *p << std::endl; // 输出: 2 return 0; }
Dalam contoh di atas, *p++ mengeluarkan p pertama Nilai ditunjuk kepada ialah 1, kemudian p ditambah kepada elemen seterusnya, dan kini p menunjukkan kepada 2. Dan (*p)++ mula-mula mengeluarkan nilai yang ditunjuk oleh p, 1, dan kemudian menambah nilai Sekarang nilai yang ditunjuk oleh p ialah 2. Ini menunjukkan perbezaan antara keduanya.
Atas ialah kandungan terperinci Apakah perbezaan antara *p++ dan (*p)++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!