const与#define有什么区别?
考察说明
考察对C/C++中常量定义方式的理解及编译期与运行期的概念差异
回答思路
- 说明const是类型安全的编译期检查,而#define是简单的文本替换
- 指出const有类型和存储,可能占用内存或受作用域限制;#define无类型、不占用存储、在预处理阶段展开
- 说明const能参与调试,通过指针间接修改可能被编译器优化或报错;#define在预处理阶段已展开,调试时看不到
- 补充const在不同场景(局部变量、全局、指针、类成员)的语义,以及宏在带参情况和括号的必要性
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。