以下数组定义,符合 C++ 语法的是( )
数组定义的核心规则是:大小必须为常量表达式,初始化列表元素类型需与数组类型匹配。看到题先扫四个选项:A 的初始化列表混入浮点字面量 3.0,int 数组不能直接容纳 double 值;C 缺省大小,非法;D 用浮点 10.0 作大小,非法;B 用字符常量'A',C++ 中字符常量自动提升为整型(ASCII 值),因此'b['A']'等同于'b[65]',合法。通法:判断数组定义时,先看大小表达式是否合法,再看初始化列表元素类型是否匹配。
A 错在类型不匹配——int 数组的初始化列表里出现浮点字面量,编译器会报错;C 错在缺省大小,数组必须指定大小;D 错在用浮点字面量作大小,大小必须是整型常量表达式;B 看似诡异,实则字符常量'A'在 C++ 中就是整型常量(ASCII 65),因此'b['A']'是合法的数组定义。
数组定义的核心规则是:大小必须为常量表达式,初始化列表元素类型需与数组类型匹配。看到题先扫四个选项:A 的初始化列表混入浮点字面量 3.0,int 数组不能直接容纳 double 值;C 缺省大小,非法;D 用浮点 10.0 作大小,非法;B 用字符常量'A',C++ 中字符常量自动提升为整型(ASCII 值),因此'b['A']'等同于'b[65]',合法。通法:判断数组定义时,先看大小表达式是否合法,再看初始化列表元素类型是否匹配。
A 错在类型不匹配——int 数组的初始化列表里出现浮点字面量,编译器会报错;C 错在缺省大小,数组必须指定大小;D 错在用浮点字面量作大小,大小必须是整型常量表达式;B 看似诡异,实则字符常量'A'在 C++ 中就是整型常量(ASCII 65),因此'b['A']'是合法的数组定义。
本题考查 GESP 三级 C++ 大纲中"数组定义与初始化"模块。命题人放这道题,就是要卡住考生对"数组大小必须是常量表达式"这一铁律的掌握程度,以及是否清楚字符常量在 C++ 中的整型提升规则。