Rumah > pembangunan bahagian belakang > C++ > Mengapakah 'const T*' dan 'T const*' Kedua-dua Perisytiharan Penunjuk Sah dalam C ?

Mengapakah 'const T*' dan 'T const*' Kedua-dua Perisytiharan Penunjuk Sah dalam C ?

Susan Sarandon
Lepaskan: 2024-12-16 13:33:12
asal
219 orang telah melayarinya

Why Are

Mengapakah "const T" dan "T const" Kedua-duanya Sah?

Bahasa C membenarkan menentukan const pada kedua-dua belah asterisk apabila mengisytiharkan petunjuk. Fleksibiliti ini timbul daripada pendekatan penghuraian dari kiri ke kanan tatabahasa C.

Penghuraian Kiri-ke-Kanan

Pengkompil C menghuraikan token input dari kiri ke kanan. Apabila menghuraikan perisytiharan penuding, ia menemui token dan menganggap jenis penuding sedang ditakrifkan. Sebarang kelayakan const yang ditemui sebelum digunakan pada jenis data yang ditunjuk. Walau bagaimanapun, jika kelayakan const muncul selepas *, ia terpakai pada penuding itu sendiri.

Kesamaan Semantik

Makna semantik pengisytiharan penunjuk tetap sama tanpa mengira kedudukan const. Sama ada const berada di sebelah kiri atau kanan penentu jenis, pengkompil mentafsirnya dengan cara yang sama.

Penggunaan

Sementara "const T" dan "T const " adalah sama sah, sesetengah pengaturcara lebih suka meletakkan const di sebelah kiri untuk menyatakan secara eksplisit constness data itu sendiri. Walau bagaimanapun, pilihan satu sintaks berbanding yang lain adalah soal keutamaan peribadi.

Penunjuk Fungsi

Situasi yang sama timbul apabila mengisytiharkan penunjuk fungsi. Sintaks "void function1(void)" mengisytiharkan fungsi yang mengembalikan void , manakala "void (* function2)(void)" mengisytiharkan penunjuk fungsi kepada fungsi yang mengembalikan void.

Kesimpulan

Keupayaan untuk menentukan konst pada kedua-dua belah asterisk dalam penunjuk pengisytiharan adalah akibat daripada mekanisme penghuraian kiri ke kanan pengkompil C. Secara semantik, kedudukan const tidak menjejaskan maksud pengisytiharan. Pengaturcara bebas menggunakan mana-mana sintaks yang mereka suka untuk kebolehbacaan atau ketekalan.

Atas ialah kandungan terperinci Mengapakah 'const T*' dan 'T const*' Kedua-dua Perisytiharan Penunjuk Sah dalam 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