[英]What does int A[]={} mean in C?
我遇到了這段代碼。 它沒有給出錯誤,但是究竟是什么意思呢?
int A[]={};
編輯:我不得不編輯這篇文章,因為你們中的一些人要求上下文,編譯器等。
我對編譯器了解不多,但是我設法找到了我正在使用的版本“ gcc(tdm-1)4.9.2”。
我自己嘗試了該代碼,它確實運行正確,我也能夠在該陣列上進行讀寫。 我的問題是:當我聲明這樣的數組時,到底發生了什么?
int A[]={};
在C中是非法的。空的初始化程序無效。 參見C11草案6.7.9初始化 。
沒什么意思,它不是有效的C。
C11 6.7.9聲明以下兩種形式有效:
{ initializer-list }
{ initializer-list , }
其中initializer-list
定義為以下之一:
designationopt initializer
initializer-list , designationopt initializer
這可以是賦值表達式,也可以是C99指定的初始化程序。 空的初始化程序列表是無效的語法。
它定義了一個int
類型的空數組。
您應該顯示更多上下文,並提及所使用的編譯器。
我不認為代碼可以使用符合標准的編譯器進行編譯,而空的初始化列表會使其無效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.