下面代码可以通过编译。
int a[5];
a++;编译阶段检查语法错误(如缺少分号、类型不匹配)。运行阶段才会暴露逻辑错误(如数组越界、除零)。正确答案B。
关键提醒:C++中的^是异或运算符,不是乘方!2^5=7而非32。这是最高频的错误。
数组下标从0开始,a[n]访问的是第n+1个元素。越界不报编译错但结果不可预测。
【考点】数组与指针的语义区别|lvalue 类型与可修改性
GESP 四级 C++ 模块"程序结构与数据类型",要求掌握数组定义语法与指针算术运算的适用对象。命题人把"数组名不是指针"这个底层语义规则单独拎出来考,卡住的是大量考生看到 a[5] 就自动脑补成指针类型,混淆了"数组名退化"与"数组名本身"两个不同概念。