首頁  >  文章  >  後端開發  >  為什麼 C 在透過引用傳遞二維數組時會拋出「在 '*' 標記之前預期的 ',' 或 '...'」?

為什麼 C 在透過引用傳遞二維數組時會拋出「在 '*' 標記之前預期的 ',' 或 '...'」?

Linda Hamilton
Linda Hamilton原創
2024-11-06 00:41:021007瀏覽

Why Does C   Throw

傳遞對二維數組的引用

問題

嘗試將對二維數組的引用傳遞給函數時C 中,用戶可能會遇到來自g 的錯誤「在'*' 標記之前預期有',' 或'...'」。問題來了:這個錯誤顯示什麼以及如何解決?

錯誤表示 do_something() 的函數原型不正確。要在編譯時傳遞已知維度的二維數組的引用,應使用以下語法:

<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 的二維陣列的參考。

相較之下,int array[board_width][board_height] ;將參數數組宣告為指向 board_height 整數的一維數組的指針,從而忽略數組的第二個維度。這會導致報告錯誤,因為語法不正確。

以上是為什麼 C 在透過引用傳遞二維數組時會拋出「在 '*' 標記之前預期的 ',' 或 '...'」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn