數組成員的初始值設定項清單
由於嘗試使用以下方式初始化成員初始值設定項列表中的數組,提供的程式碼片段無法編譯以下語法:
`
C() : arr({1,2,3}) <br>{}<br>// 也無法編譯<br>C() : arr{1,2,3} <br>{}
這是因為C 03 中的陣列只能使用賦值運算子初始化,例如int arr[3] = {1,3,4}.
解
使用結構體:
提供的程式碼可以透過使用結構體包裝陣列並在建構函式中初始化它來修復,如下所示如下:
`
int arr[3];<br> ArrayWrapper() : arr{1,2,3} {}<br>};<br>
使用C 11 清單初始化:
在C 11中,您可以使用清單初始化來初始化成員初始值設定項目清單中的陣列:
`
int arr[3];<br> ArrayWrapper() :到達{1, 2, 3 } {}<br>};<br>
標準合規性:
C 03 標準中未明確解決該行為,但這是聚合初始化必須使用賦值運算子的規則的推論。
C 11 澄清:
C 11 明確允許使用列表初始化來初始化成員初始值設定項清單中的陣列。
以上是如何在 C 中初始化成員初始化列表中的陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!