今天在看C++ Primer Plus时,看到其中说到常量定义时,使用const要优于#define,解释的有些模糊,从网上找到了资料来详细的学习一下。
这位大神总结的很好,一起膜拜学习。
http://blog.csdn.net/love_gaohz/article/details/7567856
1. const
用于定义常量数据类型,通过const定义的变量不能被修改。
对于普通数据类型,有两种写法,效果相同:
const int A = 1;
int const A = 1;
对于指针类型,需要注意,存在三种形式,最后一种效果不同:
const int *p = #; //*p不能被修改,p能被修改,即指向的内存空间内容不能被修改,指针的指向可以修改
int const *p = #; //*p不能被修改,p能被修改,同第一种
int *const p = #; //*p能被修改,p不能被修改,即指针的指向不能被修改,指向的内存空间内存可以被修改。
2. #define
宏定义,用于替换表示。
最常见的就是定义常量:
#define N 1000
1
和const int N = 1000,效果相同。因此这一点与const存在交集,需要对比的也就是这一点。
还可以定
C++:宏定义#define与常量const
最新推荐文章于 2024-01-24 19:43:55 发布
本文探讨了C++中常量定义时使用`const`相对于`#define`的优势。`const`在编译阶段处理,提供类型检查,而`#define`在预处理阶段进行简单的字符串替换。此外,`const`常量在内存中有唯一拷贝,节省空间,而`#define`可能导致多次内存分配。
摘要由CSDN通过智能技术生成