以下关于标准 C++ 一维数组的描述,哪一项是错误的?( )
答案C。结合数组、位运算、进制等知识综合分析。
注意题目中的否定词("不正确""不属于")和绝对化表述("一定""必须")。
【考点】数组下标|内存连续性|数组长度编译期确定
本题考查《GESP 考试大纲》编程基础模块 C++ 语法(三级),命题人专卡'数组长度必须是编译期常量'这一易错点,多数考生会混淆动态数组与标准数组的概念,误以为数组大小可以像 vector 那样在运行时动态调整。
看到题先回忆标准数组定义:下标从 0 开始、内存连续、长度在定义时就必须固定。逐项核对:A 符合 C++ 规范;B 是数组存储本质特征;C 错在'只能运行时确定'——长度必须是编译期常量表达式;D 显然正确。通法:判断数组相关描述时,优先确认下标起始、内存连续性、长度确定时机三要素,这是区分标准数组与动态数组的核心判据。
选项 C 是命题人精心设计的陷阱:它利用初学者对'动态数组'(如 vector)的既有认知,偷换概念将'长度需在编译期确定'扭曲为'只能运行时确定'。绝对化表述'只能'直接暴露错误,若只背结论不理解本质,就会误选。其他选项均符合 C++ 标准定义,无歧义。
命题人视角:若将'只能运行时确定'改为'可运行时确定',则正确选项会变为 D 或 E(假设增加动态数组选项),因为此时描述的是动态数组而非标准数组。刷到类似题先问:'命题人想考我标准数组与动态数组的区别吗?'