簡體   English   中英

在數組初始值設定項中有多余的元素可以嗎?

[英]Is it ok to have excess elements in array initializer?

通常在我們初始化數組時,我們可能會這樣做:

int arr[] = {1, 2, 3, 4, 5};

但是可以明確地限制數組的長度如下所示嗎?

int arr[3] = {1, 2, 3, 4, 5};

盡管編譯器發出了一些警告,但可執行文件似乎沒有任何問題。

不,不行。 從C99,6.7.8.2:

約束

  1. 初始化程序不應嘗試為未初始化的實體中包含的對象提供值。

在我的閱讀中,這意味着提供多余的初始化元素是違反約束的,因此它會調用未定義的行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM