1、请说说const与#define有何区别?
基于这个问题,我们先分别解释一下const和define。
首先是const。
const 就是告诉编译器某个值不变,可能不严谨,姑且这么理解。
看看const用法有哪些:
a、const修饰成员变量。
一旦使用const修饰,就是一个常量,值无法进行更改。
b、修饰函数参数。
传递过来的参数在函数内不可以改变,与上面修饰变量时的性质一样。
同样和a情况一样。
还有很多用法,在这里不一一列出,需要的具体再去查查。
再来说说#define。
#define是宏定义,宏定义有两种:
a、#define 宏名 字符串
例如:#define pi 3.14159
b、#define <宏名> (<参数表>) <宏体>
例: #define A(x) x在这里需要注意的是参数表需要接上();
再来回答一下:const与#define的区别。
从起作用的阶段而言:#define是在预处理阶段起作用,而const是在编译和运行的时候起作用。
从方式而言,#define只是进行替换作用,没有类型检测。而const是需要进行类型检查的。