关键字const是用来定义常变量的,一个变量如果被const修饰那么他的值就不能被改变
还有#define,#define是在预编译的时候进行处理的
先讲讲#define的用法
#include <stdio.h>
#define CALC(x) x*x
int main()
{
int number = CALC(5 + 5) / (2 + 2);
printf("%d\n", number);
return 0;
}
31
分析:程序做了什么,在预编译的时候,程序将 x*x替换为 CALC(x)
即: int number = 5+5*5+5/(2+2) //接下来运算就和我们学的数学一样了
#define定义的宏,就是宏替换,宏是在预处理阶段展开的。
const与define的区别:
- const 定义的常数是变量也带类型, #define 定义的只是个常数 不带类型
- define是在编译的预处理阶段起作用,而const是在 编译、运行的时候起作用
- define只是简单的宏替换,没有类型检查,而const有对应的数据类型,是要进行判断检查,可以避免一些不必要的错误
- const常变量可以进行调试的,define是不能进行调试的,因为在预编译阶段就已经替换掉了
与#define相比const的优点:
- 预编译指令只是对值进行替换,不对类型进行检查,而const要进行类型检查
- const 可以保护被修饰的东西,防止意外修改,增强了程序的健壮性