小杨定义了一个结构体 Hero 来表示游戏角色,下面哪种初始化方式会由于语法错误导致编译失败?( )。
struct Hero {
string name;
int hp;
};编译阶段检查语法错误(如缺少分号、类型不匹配)。运行阶段才会暴露逻辑错误(如数组越界、除零)。正确答案C。
区分编译错误和运行错误:语法错误在编译时被发现,逻辑错误(除零、越界等)在运行时才暴露。
【考点】新运算符|聚合初始化|指针赋值
GESP 四级 C++ 模块"指针与动态存储"。命题人专挑"new 返回指针"这一核心概念挖坑——四级考生普遍以为新运算符和赋值运算符能混用,殊不知 new 永远产出指针类型,而 struct 成员是值类型。