C++中#define和const的区别

最近在学C++,遇到一个问题,写成文章记录下来

一、相同点

在这里插入图片描述

二、不同点

在这里插入图片描述

三、具体例子

示例 1:文本替换问题

#define A 3+4
const int B = 3+4;

int main() {
    int x = 2 * A; // 实际替换为 2 * 3 + 4 = 10 ❌
    int y = 2 * B; // 计算为 2 * 7 = 14}

#define 是“纯文本替换”,所以 2 * 3 + 4 按运算优先级变成 10。
const 会真正参与计算,结果是 14。

示例 2:类型检查

#define N 3.14
const int M = 3.14; // 编译器会警告或报错类型不匹配 ✅

#define 不会检查类型错误,const 会。

示例 3:作用域

void f() {
    #define X 10
    const int Y = 20;
}
void g() {
    std::cout << X; // ✅ 仍然可用(全局替换)
    std::cout << Y; // ❌ 无法访问(作用域内)
}

四、总结

在这里插入图片描述

本资源对伊犁河谷范围内的河谷边界、绿洲分布及水系矢量边界数据进行了系统整理与规范化构建,形成集区域空间边界、绿洲与水系要素、制图工程文件与标准成图成果于一体的综合空间数据集。资源以权威基础地理与水文资料为依据,结合地理信息系统(GIS)技术,对伊犁河谷典型“山—水—绿洲”空间结构进行统一表达。在数据内容方面,本资源以高精度矢量形式准确刻画伊犁河谷整体空间范围,清晰表达绿洲分布格局及其与河流水系之间的空间关系,同时系统整理伊犁河干流及主要支流的空间分布特征,为绿洲演变研究、水资源配置分析及生态格局评估提供基础数据支撑。在成果形式方面,本资源同步提供可编辑的 ArcGIS MXD 工程文件、标准化 Shape 文件(SHP)以及高分辨率标准成图成果(TIF)。其中,MXD 文件已完成河谷边界、绿洲要素与水系图层的统一组织、符号系统配置及制图版式设计,用户可在 ArcGIS 环境中直接进行二次编辑、专题扩展与成果更新;SHP 文件遵循通用 GIS 数据规范,具有良好的兼容性;TIF 成图成果适合用于科研报告、规划文本及成果展示。伊犁河谷位于我国新疆维吾尔自治区西部,地处天山山脉西段,是中亚地区典型的山间盆地与河谷复合区。受天山地形抬升西风环流影响,该区域水热条件相对优越,是新疆少有的湿润—半湿润地区之一,形成了以河流—绿洲为核心的独特自然地理格局。伊犁河谷在区域水资源配置、农业生产布局及生态安全维护中具有重要地位。从自然地理特征看,伊犁河谷四周高山环绕,中部地势相对平坦,河网发育,以伊犁河干流及其多条支流为骨架,构建起稳定的地表水系结构。河流沿岸水源条件良好,绿洲广泛分布,是区域人口集聚、农业发展生态系统维系的关键空间单元。绿洲空间格局与河流水系高度耦合,对区域生态稳定性人类活动具有显著支撑作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值