繁体   English   中英

int A [] = {}在C中意味着什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM