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

Apakah Perbezaan Antara `ptr `, ` ptr` dan ` *ptr` dalam C/C ?

Linda Hamilton
Lepaskan: 2024-12-20 07:20:09
asal
216 orang telah melayarinya

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

Ungkapan Penunjuk: ptr , ptr dan *ptr

Memahami ketiga-tiga ungkapan penunjuk ini boleh membingungkan. Panduan terperinci ini akan memecahkan setiap operasi ungkapan dan memberikan contoh untuk aplikasi praktikalnya dalam kod.

*ptr

Ungkapan ini menyahrujuk penuding dan kemudian menambah penuding alamat.

Contoh:

char *p = "Hello";
while (*p++) {
    printf("%c", *p);
}
Salin selepas log masuk

Kod ini mencetak "ello" dan bukannya "Hello" kerana penunjuk sedang dinaikkan selepas mengakses aksara, melangkau watak 'H'.

* ptr

Ungkapan ini menaikkan alamat penuding dan kemudian menafikan penunjuk.

Contoh:

char *p = "Hello";
printf("%c", *++p);
Salin selepas log masuk

Kod ini mencetak "e" sebagai aksara selepas nilai penunjuk awal (yang menghala ke 'H') diakses sebelum dinaikkan ke arah 'e'.

*ptr

Ungkapan ini menyahrujuk penuding dan kemudian menambah nilai pada alamat.

Contoh:

char q[] = "Hello";
char *p = q;
printf("%c", ++*p);
Salin selepas log masuk

Kod ini mencetak "I" kerana nilai di alamat adalah terus bertambah kepada 'I'.

(*ptr)

Ungkapan ini berbeza sedikit dan memaksa penolakan rujukan sebelum menambah nilai.

Contoh:

char q[] = "Hello";
char *p = q;
printf("%c", (*p)++);
Salin selepas log masuk

Kod ini mencetak "H" dan kemudian membuat sasaran kenaikan seterusnya 'I'.

Kesimpulan

Ekspresi penuding ini menawarkan fleksibiliti dalam manipulasi penuding. Walau bagaimanapun, adalah penting untuk mengetahui selok-beloknya, termasuk susunan keutamaan, penilaian nilai dan kesan sampingan. Dengan memahami operasi ini secara terperinci, anda boleh menggunakannya dengan berkesan dalam kod anda dan mengelakkan kemungkinan perangkap.

Atas ialah kandungan terperinci Apakah Perbezaan Antara `ptr `, ` ptr` dan ` *ptr` dalam C/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