煤矸石空心砖

联系我们Contact

企业名称:桐城市南口新型建材有限公司

联系人:崔经理

电话:0556-6568069

手机:18156911555

邮箱:303927413@qq.com

地址:桐城市龙腾街道高桥村

网址:   www.nkxxjc.com 



您的当前位置: 首 页 > c++常量形式 > 是否始终允许C++使用变量进行数组大小?

是否始终允许C++使用变量进行数组大小?

出于某种原因,在过去,我记得无法做到这样的事情:

int arraySize; cin >> arraySize; int array[arraySize];

但最近,我再次尝试了这一点,并没有引起任何问题.我之前可以发誓这是在我的编译器中引发错误的东西(macOS Sierra,Xcode 8.1).语言中的任何内容都已更新以允许此操作吗? - 我可能完全记错了,这不是以前的问题,但我不确定.我认为必须在编译期间定义数组大小,并且用户无法选择它(这是您实现动态数组的地方).

1> Vlad from Mo..:

C++标准不支持可变长度数组,尽管某些编译器可以拥有自己的语言扩展,允许在C++程序中使用VLA.

因此这段代码片段

int arraySize; cin >> arraySize; int array[arraySize];

不符合C++.

而是使用标准C++类std::vector.

至于C,那么根据C标准实现可以有条件地支持VLA.

您可以检查实现是否支持VLA.来自C标准(6.10.8.3条件特征宏)

1以下宏名称由实现有条件地定义:

__STDC_NO_VLA__

整数常量1,用于指示实现不支持可变长度数组或可变修改类型.

2> 小智..:

语言中的任何内容都已更新以允许此操作

不可变长度数组(又称VLA)是编译器特定的扩展.

c ++标准从未允许这样做(不像c99标准那样反过来).

本文网址:

关键词:c++常量形式

相关新闻: