2 次元配列を参照渡しするときに C が「*」トークンの前に「expected ',' または '...'」をスローするのはなぜですか?

Linda Hamilton
リリース: 2024-11-06 00:41:02
オリジナル
1006 人が閲覧しました

Why Does C   Throw

2 次元配列への参照を渡す

問題

2 次元配列への参照を関数に渡そうとしたときC の場合、ユーザーは g から「'*' トークンの前に ',' または '...' が必要です」というエラーが発生する可能性があります。このエラーは何を示しているのでしょうか?また、どのように解決すればよいでしょうか?

解決策

このエラーは、do_something() の関数プロトタイプが間違っていることを示しています。コンパイル時に既知の次元を持つ 2 次元配列への参照を渡すには、次の構文を使用する必要があります。

<code class="cpp">void do_something(int (&array)[board_width][board_height]);</code>
ログイン後にコピー

パラメータを int array[board_width][board_height] として宣言します。代わりに配列の最初の部分配列へのポインタを渡しますが、これはこの場合望ましい機能ではありません。

説明

参照構文 &array により、実際の配列が確実に渡されます。これにより、関数が配列の内容を直接変更できるようになります。 int (&array)[board_width][board_height] という表記は、パラメータの配列が、board_width と board_height の次元を持つ 2 次元配列への参照であることを指定します。

対照的に、int array[board_width][board_height] ;パラメータ配列を、board_height 整数の 1 次元配列へのポインタとして宣言しているため、配列の 2 次元は無視されます。これにより、構文が正しくないため、エラーが報告されます。

以上が2 次元配列を参照渡しするときに C が「*」トークンの前に「expected ',' または '...'」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!