Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mengapa C Melemparkan "dijangka ',' atau '...' sebelum token '*'" Apabila Melepasi Tatasusunan Dua Dimensi Secara Rujukan?

Mengapa C Melemparkan "dijangka ',' atau '...' sebelum token '*'" Apabila Melepasi Tatasusunan Dua Dimensi Secara Rujukan?

Linda Hamilton
Linda Hamiltonasal
2024-11-06 00:41:021007semak imbas

Why Does C   Throw

Melalukan Rujukan kepada Tatasusunan Dua Dimensi

Masalah

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?

Penyelesaian

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.

Penjelasan

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!

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