Ungkapan Penunjuk: Memahami ptr , ptr, dan *ptr
Penunjuk dalam C adalah asas untuk mengakses dan memanipulasi data yang disimpan dalam ingatan. Dalam ungkapan penuding, pengendali seperti *, , dan pra/pasca kenaikan ( / ) boleh digabungkan untuk menghasilkan kesan yang berbeza. Panduan ini akan menyelidiki selok-belok ungkapan penunjuk ini.
*ptr
- *ptr menambah ptr penunjuk dengan satu lokasi memori, bermakna ia bergerak ke nilai seterusnya dalam memori ia menunjuk ke.
- Nilai dinyahrujukan di lokasi asal yang ditunjuk oleh ptr diambil dan boleh dikendalikan apabila.
- Kemudian, ptr penunjuk dinaikkan.
* ptr
- * ptr menambah ptr penunjuk dengan satu lokasi memori, bergerak ke nilai seterusnya dalam ingatan.
- Nilai di lokasi baharu dinyahrujuk dan menjadi ungkapan nilai.
- Ungkapan ini secara berkesan meningkatkan penuding terlebih dahulu, memastikan nilai yang dirujuk adalah dari lokasi yang ditambah.
*ptr
- *ptr dereferences ptr penunjuk, mengambil nilai semasanya.
- Ia kemudian menambah nilai dinyahrujuk dengan satu.
- Perhatikan bahawa ungkapan ini mengubah suai nilai pada lokasi yang ditunjukkan oleh ptr.
Contoh Dunia Sebenar
Pertimbangkan coretan kod:
int main() {
int arr[] = {1, 2, 3, 4, 5};
int *ptr = arr;
printf("%d\n", *ptr++); // prints 1 and increments ptr to 2
printf("%d\n", *ptr++); // prints 2 and increments ptr to 3
printf("%d\n", *ptr++); // prints 3 and increments ptr to 4
return 0;
}
Salin selepas log masuk
Dalam contoh ini, penunjuk ptr menunjuk ke elemen pertama tatasusunan arr.
- *ptr mendapatkan semula nilai 1 daripada elemen pertama dan menambah ptr.
- * ptr mendapatkan semula nilai 2 daripada elemen kedua.
- Meningkatkan ptr dalam ungkapan sebelumnya memajukannya ke yang ketiga dan keempat elemen.
Pertimbangan Tambahan
- Ungkapan penunjuk seperti ptr dan ptr boleh menyebabkan ralat aritmetik penunjuk jika digunakan dengan tatasusunan.
- Mengubah suai literal rentetan menggunakan ungkapan penunjuk, seperti dalam *ptr, tidak ditentukan tingkah laku.
- Menggunakan (*ptr) secara eksplisit menolak rujukan, membenarkan pengubahsuaian nilai yang ditunjukkannya.
Memahami ungkapan penunjuk ini adalah penting untuk memanipulasi data dalam pengaturcaraan C dengan berkesan. Aplikasi yang betul memastikan capaian memori yang cekap dan tingkah laku program yang betul.
Atas ialah kandungan terperinci Apakah Perbezaan Antara `ptr `, ` ptr` dan ` *ptr` dalam Ungkapan Penunjuk C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!