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常量进行类型的安全检查。

相关推荐
2301_803554521 小时前
socket编程
c++
热爱编程的OP1 小时前
Linux进程池与管道通信详解:从原理到实现
linux·开发语言·c++
许强0xq2 小时前
Q6: 如何计算以太坊交易的美元成本?
面试·web3·区块链·智能合约·dapp
晚风吹长发9 小时前
二分查找算法+题目详解
c++·算法·二分查找
罗义凯9 小时前
其中包含了三种排序算法的注释版本(冒泡排序、选择排序、插入排序),但当前只实现了数组的输入和输出功能。
数据结构·c++·算法
狂炫冰美式10 小时前
前端实时推送 & WebSocket 面试题(2026版)
前端·http·面试
春蕾夏荷_72829772510 小时前
c++ easylogging 使用示例
c++·log·easylogging
syt_biancheng10 小时前
Day3算法训练(简写单词,dd爱框框,3-除2!)
开发语言·c++·算法·贪心算法
自然数e11 小时前
C++多线程【线程管控】之线程转移以及线程数量和ID
开发语言·c++·算法·多线程
Chan1612 小时前
Java 集合面试核心:ArrayList/LinkedList 底层数据结构,HashMap扩容机制详解
java·数据结构·spring boot·面试·intellij-idea