C++面试,说明const和#define的特点和区别

#define只是用来做文本替换的,例如:

cpp 复制代码
#define PI 3.1415926
float angel;
angel = 30 * PI /180;

当程序进行编译的时候。编译器会首先将"#define PI 3.1415926"以后所有代码中的PI都替换成3.1415926,然后进行编译。它的生命周期止于编译期,它存在于程序的代码段,在实际程序中它只是一个常数,一个命令中的参数,并没有实际的存在。

const常量存在于程序的数据段,并且在堆栈分配了空间。const常量有数据类型,但是宏却没有,编译器可以对const常量进行类型的安全检查。

相关推荐
yanlele25 分钟前
我用爬虫抓取了 25 年 6 月掘金热门面试文章
前端·javascript·面试
十秒耿直拆包选手1 小时前
Qt:主窗体(QMainwindow)初始化注意事项
c++·qt
追逐时光者2 小时前
面试第一步,先准备一份简洁、优雅的简历模板!
后端·面试
霖002 小时前
C++学习笔记三
运维·开发语言·c++·笔记·学习·fpga开发
mit6.8243 小时前
[shad-PS4] Vulkan渲染器 | 着色器_重新编译器 | SPIR-V 格式
c++·游戏引擎·ps4
tan77º4 小时前
【Linux网络编程】Socket - TCP
linux·网络·c++·tcp/ip
古希腊被code拿捏的神5 小时前
【Flutter】面试记录
flutter·面试·职场和发展
Mike_Zhang5 小时前
C++使用WinHTTP访问http/https服务
c++
CHANG_THE_WORLD5 小时前
「macOS 系统字体收集器 (C++17 实现)」
开发语言·c++·macos
小飞悟5 小时前
那些年我们忽略的高频事件,正在拖垮你的页面
javascript·设计模式·面试