美文网首页
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常量是由编译器处理的,提供类型检查和作用域检查
宏定义由预处理器处理,单纯的文本替换,没有类型安全检查,并且在字符替换中可能会出现错误。

相关文章

  • iOS 日常小知识点总结

    define和const常量有什么区别 define在预处理阶段进行替换, const常量在编译阶段使用;宏不做类...

  • const 和#define 的区别

    1、两者的区别(C语言) (1) 编译器处理方式不同#define宏是在预处理阶段展开。const常量是编译运行阶...

  • const和define的区别

    C语言中的const变量是只读,有自己的存储空间C++中的const修饰的是一个真正的常量 可能有分配存储空间(对...

  • const和define的区别

    const 常量1.在定义时必须被初始值,2.前面不加任何修饰符3.变量名字母一般都大写4.常量可以被子类继承5....

  • #define、const、static、extern小结

    define 项目常用字符串及方法代码宏定义(以项目前缀开头) const const 和 define的部分区别...

  • const和#define

    const 和#define区别 相同点: 定义的值不可变 不同点: const:用const 在使用的地方,只会...

  • iOS -> 正确使用static、extern、cons

    1、const与宏 #define 的区别: 2、static与const结合使用 3、extern与const ...

  • iOS define和const的区别

    一、宏与const 的使用: 很多小伙伴在定义一个常量字符串,都会定义成一个宏,最典型的例子就是服务器的地址。在此...

  • const 、enum 和#define 的区别

    刚从事IOS这行的时候,const很少用,主要是用#define和enum,后来慢慢的注意到,如何提升代码的...

  • define、const和volatile的区别

    #define 定义的指定,程序在预处理阶段将用#define所定义的内容只是进行了替换。因此程序运行时,常量表中...

网友评论

      本文标题:const和define的区别

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