首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >int A[]={}在C中是什么意思?

问int A[]={}在C中是什么意思?
EN

Stack Overflow用户
提问于 2016-11-23 20:53:28
回答 4查看 132关注 0票数 0

我偶然发现了这段代码。它不会给出错误,但它到底意味着什么呢?

代码语言:javascript
复制
int A[]={};

编辑:我不得不编辑这篇文章,因为你们中的一些人要求提供上下文、编译器等。

我对编译器了解不多,但我设法找到了我正在使用的版本"gcc (tdm-1) 4.9.2“。

我自己试过代码,它确实可以正确运行,我也能够在数组上读写。我的问题是:当我声明这样的数组时,到底会发生什么?

EN

回答 4

Stack Overflow用户

发布于 2016-11-23 20:55:49

代码语言:javascript
复制
int A[]={};

在C中是非法的。空的初始值设定项无效。参见C11 draft, 6.7.9 Initialization。

票数 4
EN

Stack Overflow用户

发布于 2016-11-23 21:02:00

它没有任何意义,它不是有效的C。

C11 6.7.9声明以下两种形式是有效的:

代码语言:javascript
复制
{ initializer-list } 
{ initializer-list , }

其中,initializer-list定义为以下其中一项:

代码语言:javascript
复制
designationopt initializer
initializer-list , designationopt initializer

这可以是赋值表达式,也可以是C99指定的初始值设定项。空的初始值设定项列表不是有效语法。

票数 2
EN

Stack Overflow用户

发布于 2016-11-23 20:54:21

它正在定义int类型的空数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40765108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档