Rumah > Artikel > pembangunan bahagian belakang > Mengapa C Melemparkan "dijangka ',' atau '...' sebelum token '*'" Apabila Melepasi Tatasusunan Dua Dimensi Secara Rujukan?
Apabila cuba menghantar rujukan kepada tatasusunan dua dimensi kepada fungsi dalam C , pengguna mungkin menghadapi ralat "jangkaan ',' atau '...' sebelum '*' token" daripada g . Timbul persoalan: apakah yang ditunjukkan oleh ralat ini dan bagaimanakah ia boleh diselesaikan?
Ralat menunjukkan bahawa prototaip fungsi untuk do_something() adalah tidak betul. Untuk menghantar rujukan kepada tatasusunan dua dimensi dengan dimensi yang diketahui pada masa penyusunan, sintaks berikut harus digunakan:
<code class="cpp">void do_something(int (&array)[board_width][board_height]);</code>
Mengisytiharkan parameter sebagai int array[board_width][board_height]; sebaliknya akan menghantar penuding kepada sub-tatasusunan pertama tatasusunan, yang bukan fungsi yang diingini dalam kes ini.
Sintaks &array rujukan memastikan tatasusunan sebenar diluluskan oleh rujukan, membenarkan fungsi mengubah suai kandungan tatasusunan secara langsung. Notasi int (&array)[board_width][board_height] menyatakan bahawa tatasusunan parameter ialah rujukan kepada tatasusunan dua dimensi dengan dimensi board_width dan board_height.
Sebaliknya, int array[board_width][board_height] ; mengisytiharkan tatasusunan parameter sebagai penuding kepada tatasusunan satu dimensi integer board_height, dengan itu mengabaikan dimensi kedua tatasusunan. Ini mengakibatkan ralat yang dilaporkan kerana sintaksnya tidak betul.
Atas ialah kandungan terperinci Mengapa C Melemparkan "dijangka ',' atau '...' sebelum token '*'" Apabila Melepasi Tatasusunan Dua Dimensi Secara Rujukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!