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
801 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!

sumber:php.cn
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