欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

#define和const的区别

程序员文章站 2024-03-23 13:33:52
...

在C语言中常用#define命令来定义符号常量:

#define PI 3.14159

实际上,只是在预编译时进行字符置换,把程序中出现的字符串PI全部换成3.14159。在预编译之后,程序中不再有PI这个标识符。PI不是变量,没有类型,不占用存储单元,而且容易出错,如:

int a = 1;b = 2;
#define PI 3.14159
#define R a + b
cout << PI * R * R<< endl;

输出的结果并不是 3.14159 * (a + b)* (a + b),而是3.14159 * a + b * a + b。程序因此而出错、

C++提供了用const定义常变量,如:

const float PI = 3.14159;

       定义了常变量PI, 它具有变量的属性,有数据类型,占用存储单元,有地址,可以用指针指向它,只是在只是在程序运行期间的值是固定的,不能变。它方便易用,避免了用#define定义符号常量时出现的缺点。因此,const 问世后,已取代了用#define 定义符号常量的作用。一般把程序中不允许改变值的变量定义为常量。

      const 可以与指针结合使用,有指向常变量的指针,常指针,指向常变量的常指针等。