4、const 和#define 相同之处和不同之处

#include<iostream>
using namespace std;
/**
 * @brief main
 * @return
 * const 修饰的时候是在编译的时候分配内存。
 */
int mainb(){
    int    a=200;
    const  int b=100;
    int c=300;
    cout<<&a<<" "<<&b<<" "<<&c<<endl;
}
/**
 * @brief main
 * @return
 * #define 和 const 区别?
 * #define 是在编译预处理阶段执行。
 * 而 const 表示的是由编译器处理,提供类型检查,和作用域检查。
 */
int mainc(){
    int    a=200;
    int  b=20;
   // int c[a+b]; //这个是在linux 内核中可以编译通过,在c++和c 中不可以通过、
    const  int  d=30;
    #define    e  10
    int  g[d+e];  //const 和 #define 都可以使用。
}
void  f1(){
   #define   a  10
   const   int  b=20;
   #undef  a   //表示的是作用域在这个函数中。
}

void  f2(){
   cout<<a<<endl;
}
/**
 * @brief main
 * @return
 * 1、总结:
 * 1.const 在c 语言中是一个只都变量。有自己的存储空间。
 * 2.在c++中可以分配存储空间,也可能不分配存储空间。
 * 2、在c++中,可能分配内存空间,也有可能不分配内存空间。
 *  当const 作为 全局变量。供其他文件使用的时候分配内存。
 *  当使用取地址符号的时候取const 常量地址的时候,会分配内存空间。int *p=(int *)&a; 会给 a分配一个内存空间,并且p指向这个内存空间。
 *  其余的时候const 是被存储在 符号表中,不会分配内存空间。
 */

int  main(){

  f1();
  f2();

}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值