Rumah >pembangunan bahagian belakang >C++ >Pengisytiharan Penunjuk C/C: `char* p;` lwn. `char *p;` – Apakah Perbezaannya?

Pengisytiharan Penunjuk C/C: `char* p;` lwn. `char *p;` – Apakah Perbezaannya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-25 21:53:22276semak imbas

C/C   Pointer Declaration: `char* p;` vs. `char *p;` – What's the Difference?

Mengisytiharkan Pembolehubah Penunjuk dalam C/C : Penjelasan Sintaks

Dalam bidang penunjuk dalam C dan C , terdapat variasi sintaksis kecil yang telah mencetuskan beberapa perdebatan: penempatan asterisk (*) dalam pengisytiharan penunjuk. Sesetengah pengaturcara memilih notasi (a):

char* p;

manakala yang lain memilih (b):

char *p;

Apakah rasional di sebalik dua notasi yang berbeza ini?

Bjarne Stroustrup, pencipta C , menjelaskan isu ini. Beliau menjelaskan bahawa pilihan bergantung bukan pada ketepatan tetapi pada keutamaan gaya dan penekanan pengaturcaraan.

Dalam C, ungkapan diutamakan daripada pengisytiharan, yang sering dilihat sebagai kurang penting. Walau bagaimanapun, C memberikan penekanan yang kuat pada jenis.

Pengikut gaya pengaturcaraan C memihak kepada notasi (a), dengan alasan bahawa "*p" mewakili nilai penyahrujukan penunjuk, sejajar dengan struktur sintaksis C bahasa.

Sementara itu, penyokong gaya pengaturcaraan C lebih suka notasi (b), menekankan jenis pembolehubah penunjuk itu sendiri. Jenis "p" dalam tatatanda (b) dikenal pasti secara eksplisit sebagai "int*", menyerlahkan peranannya sebagai penunjuk kepada integer.

Dari sudut kebolehbacaan, tatatanda (b) kelihatan lebih konsisten, terutamanya apabila mengisytiharkan berbilang penunjuk dalam satu baris. Meletakkan asterisk dengan pembolehubah, seperti dalam "char c, d", sejajar dengan gerak hati bahawa kedua-dua "c" dan "d" adalah penunjuk kepada aksara.

Akhirnya, keputusan antara tatatanda (a) dan (b) adalah perkara keutamaan peribadi. Walau bagaimanapun, memandangkan peningkatan kelaziman C dan penekanannya pada jenis, tatatanda (b) biasanya disyorkan untuk meningkatkan kejelasan dan kebolehbacaan dalam kod anda.

Atas ialah kandungan terperinci Pengisytiharan Penunjuk C/C: `char* p;` lwn. `char *p;` – Apakah Perbezaannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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