首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++支持可变长度数组吗?

问C++支持可变长度数组吗?
EN

Stack Overflow用户
提问于 2011-12-21 17:12:31
回答 2查看 18.9K关注 0票数 34

不,等等,容忍我..。

VLAs一直是GCC的扩展,但被C99采用:

如果不存在大小,则数组类型为不完整类型。如果大小为*而不是表达式,则数组类型是未指定大小的可变长度数组类型,只能在具有函数原型作用域的声明中使用;这些数组仍然是完整的类型。如果大小是整数常量表达式,且元素类型具有已知的常量大小,则数组类型不是可变长度数组类型;否则,数组类型是可变长度数组类型。。

C99也被称为ISO/IEC 9899:1999。

现在:

[C++11: 1.1/2]: C++是一种基于ISO/IEC 9899:1999 (以下简称C标准)的C语言的通用编程语言。除了C提供的工具之外,C++还提供了额外的数据类型、类、模板、异常、命名空间、运算符重载、函数名重载、引用、免费存储管理操作符和其他库设施。

那么C++11不应该也有VLA吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-21 17:55:44

这种空泛的措辞并不意味着C99中的任何东西都在C++11中,你引用的只是介绍性文本。

票数 18
EN

Stack Overflow用户

发布于 2011-12-21 17:49:09

对于这两种语言来说,常数表达式的定义是不同的。

代码语言:javascript
复制
const size_t size = 5;
int array[size]; // array in C++, VLA in C
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8593643

复制
相关文章

相似问题

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