C++中的const变量和#define的相同与不同之处

//const分配内存的时机:编译器编译期间; 
#include<iostream>
using namespace std; 
int main01()
{
    int a;
    const int b=10;
    int c;
    printf("%d %d %d",&a,&c,&b);
    return 0;
}
//const和#define的相同之处  在下列代码可以显示 
 //const 和#define的不同之处:
 /*对比加深:
 C++中的const常量类似于宏定义
        const int c=5约等于#define c 5
C++中的const常量与宏定义不同
       const常量是由编译器处理的,提供类型检查和作用域检查
       宏定义由预处理器处理,单纯的文本替换;*/ 
int main02()
{
    //int a=10;
    //int b=20;
    //int arry[a+b];//C和C++编译器会报错,原因是变量不能当做数组下标
                  //但是这种语法在linux内核里面是成立的,因为gcc支持这种现象 
    //const int a=10;
    //const int b=20;
     //int arry[a+b];//用了const后,编译就可以通过,const于#define有相同之处 
     return 0;
 } 

/*思考:在下列代码中,在func1定义a,在func2中能使用吗?
      在下列代码中,在func1定义的b,在func2中能实现吗?*/
      void func1()
      {
          #define a 10
          //const int b=20;; 
       } 
       void func2()
       {
           printf("a=%d\n",a);
           //printf("b=%d\n",b);
       }
       int main()
       {
           func1();
           func2();
           return 0;
       }
       //# undef卸载宏定义,让宏定义的变量只能在自己的函数内使用
        //如果只编写# undef a,那么只会卸载a这个变量,其他变量在其他函数内还是可以被使用的 
       //const和#define区别:
       /*# define定义的变量可以在其他函数内继续使用,而const定义的变量只能在所定义的函数的内部使用
        不能再其他函数内使用const所定义的变量 */
      C++初学者总结的知识点,如果有什么有问题的地方还请在下方评论出指出,谢谢观看

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值