Rumah > pembangunan bahagian belakang > C++ > Apakah Perbezaan Antara `ptr `, ` ptr` dan ` *ptr` dalam Ungkapan Penunjuk C?

Apakah Perbezaan Antara `ptr `, ` ptr` dan ` *ptr` dalam Ungkapan Penunjuk C?

Susan Sarandon
Lepaskan: 2024-12-08 11:05:12
asal
860 orang telah melayarinya

What's the Difference Between `ptr  `, `  ptr`, and `  *ptr` in C Pointer Expressions?

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan