You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C标准是否对"未知大小的数组"术语提供明确定义?

C标准是否对"未知大小的数组"术语提供明确定义?

咱们直接切入正题:虽然「未知大小的数组」字面意思很好理解——就是那种没有明确给出大小的数组,但从C标准的文本表述来看,它并没有给这个术语一个直接、明确的定义。

我特意梳理了C11标准里的相关内容,搜索「unknown size」和关联的「incomplete type」(不完全类型)关键词后,找到了两段核心描述:

如果未指定大小,则数组类型为不完全类型。
未知大小的数组类型是不完全类型。

你看,这两段话的逻辑是:前者是「如果A(数组未指定大小),则B(属于不完全类型)」,后者是「C(未知大小的数组)属于B(不完全类型)」。但从这两个表述里,咱们没法直接推导得出「如果A则C」——也就是说标准并没有把「未指定大小的数组」和「未知大小的数组」直接划等号,相当于没有给「未知大小的数组」下一个清晰的定义。

另外还要注意一个术语混淆的点:别把「未知大小的数组」和「未指定大小的变长数组类型」搞混,「未指定大小」这个说法是专门留给VLA(变长数组)的。不过C11里有个小疏漏,它把extern int y[];这种声明描述成「未指定大小的int数组」,这个问题在C2X里已经修正了,改成了「未知大小的int数组」。

备注:内容来源于stack exchange,提问作者pmor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 10:13:07