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

Linda Hamilton
Lepaskan: 2024-11-06 00:41:02
asal
1007 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!

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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!