Rumah > pembangunan bahagian belakang > C++ > 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
Lepaskan: 2024-11-06 00:41:02
asal
1204 orang telah melayarinya

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>
Salin selepas log masuk

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