美文网首页
const和define的区别

const和define的区别

作者: 潘雪雯 | 来源:发表于2020-05-19 11:40 被阅读0次

    C语言中的const变量是只读,有自己的存储空间
    C++中的const修饰的是一个真正的常量

    1. 可能有分配存储空间(对const使用了extern或&操作符),可能不会分配存储空间(其他情况)
    2. 当const常量为全局时,并且需要在其他文件中使用时会分配存储空间
    3. 当使用&操作符,取const常量的地址时会分配存储空间
    4. 当const int &a = 10; const修饰引用时,也会分配存储空间
      如下第一个和第二个常整型
      第三个c是一个指向常字符型的指针(所指向内存数据不能被修改,但本身可以修改)
      第四个d 常指针(指针变量不能被修改,但它所指向内存空间可以被修改)
      第五个e指向常字符型的常指针(指针和所指向内存空间均不能被修改)
    const int a;  //
    int const b; //写法和上面一样
    const char *c;
    char * const d; 
    const char * const  e ;
    

    指针变量和所指向的内存空间变量不是同一个概念,看const放在*的左边还是右边也就是看const修饰指针变量还是修饰所指向的内存空间。

    define

    #define定义常量,但其没有数据类型
    const常量是由编译器处理的,提供类型检查和作用域检查
    宏定义由预处理器处理,单纯的文本替换,没有类型安全检查,并且在字符替换中可能会出现错误。

    相关文章

      网友评论

          本文标题:const和define的区别

          本文链接:https://www.haomeiwen.com/subject/efnvohtx.html