Kurungan dalam Perisytiharan Pembolehubah dalam C
Satu pemerhatian pelik telah timbul dalam pengaturcaraan C: keupayaan untuk menyertakan perisytiharan pembolehubah dalam kurungan. Aspek ini telah menghasilkan tipu muslihat, mencetuskan persoalan tentang fungsinya.
Pertimbangkan coretan kod:
<code class="cpp">int main() { int(s); }</code>
Anehnya, kod ini mencipta pembolehubah yang sah bernama s, mendorong penyiasatan lanjut ke dalam mekanisme asas .
Menurut [dcl.maksud] dalam Piawaian C:
"Dalam pengisytiharan T D di mana D mempunyai borang ( D1 ), jenis declarator-id yang terkandung adalah sama seperti yang terkandung dalam id pengisytiharan yang terkandung dalam perisytiharan T D1."
Pernyataan ini menunjukkan bahawa kurungan tidak mengubah jenis id pengisytiharan terbenam (dalam kes ini, s). Walau bagaimanapun, ia boleh memberi kesan kepada pengikatan pengisytihar yang kompleks.
Secara ringkasnya, kurungan boleh merangkumi mana-mana pengisytihar dalam tatabahasa C. Contohnya, dalam kod yang diberikan, s ialah pengisytihar, dan kurungan tidak mengubah suai maknanya.
Kebergunaan kurungan menjadi jelas apabila berhadapan dengan senario yang lebih rumit. Pertimbangkan contoh ini:
<code class="cpp">int * a [10]; // a is an array of ten pointers to int. int ( * b ) [10]; // b is a pointer to an array of ten ints.</code>
Dalam kes ini, kurungan membolehkan perbezaan antara dua jenis penunjuk dengan berkesan. Tanpa mereka, tafsiran pengisytiharan ini akan menjadi tidak jelas.
Atas ialah kandungan terperinci Bila dan Mengapa Tanda Kurung Digunakan dalam Pengisytiharan Pembolehubah C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!