C++day01 const和define之间的区别

本文是C++初学者阿林的学习记录,主要探讨const和#define在定义常量时的不同。const在编译期间处理,提供类型检查和作用域检查,而#define在预编译阶段处理,作用于全局。const的变量局限于其定义的作用域,而#define的宏定义在整个作用域内有效。通过示例代码展示了两者的差异。
摘要由CSDN通过智能技术生成

大家好,我是阿林,一个c++的初学者。记录我学习c++的过程。

今天主要讲的是 const和define之间的区别

const和define都是定义常量,但是它们却有着定义域,作用域上的不同。

define是作用于全局的变量的。const作用于定义它的函数现在我就编程来区分两者之间的差别

//4 const和#define的相同之处
//在编译预阶段处理

void main83()
{
    //int a = 10;
    //int b = 20;
    //int array[a + b];//linux内核中是成立的,编译linux内核的gcc的编译器支持;
    //                 //c和c++编译器不支持这种语法现象。
    const int c = 10;
    const int d = 10;
    int array2[c + d];
    system("pause");


}

//5 const定义的变量,由编译器处理的,提供类型检查和作用域检查
void fun1()
{
    #define a 10
    const int b = 10;
    #undef a  //消除a的define的定义,让其只在fun1中使用而不会影响到fun2
}

void fun2()
{
    //cout << "a = " << a << endl; //证明在不适用undef a的时候define会在整个作用域中。
    //cout << "b = " << b << endl; //证明const会局限在自己定义的作用域中。
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值