1、const
定义const 只读变量,具有不可变形
const int a = 100;
编译器通常不为普通Const只读变量分配存储空间, 而是将它们保存在符号表中,
这使得它成为一个编译期间的值,没有了存储与读内存操作,使用效率很高
#define M3 //宏常量const int N = 5; //此时并没有将N放入内存中int i = N; // 此时为N分配了内存,以后不再分配内存int I = M; // 预编译期间进行宏替换,分配内存int J = N; // 没有内存分配intJ = M //再次进行宏替换,有一次分配内存
const int *p; //p可变,p指向的对象不可变int const *p; //p可变,p指向的对象不可变 int *const p; //p不可以变,p指向的对象可变const int *const p; //p不可以变,p指向的对象不可变
const和#define区别
1、const 给出了对应的内存地址,不像#define一样给出的是立即数,const定义的只读变量在程序的运行中只有一份拷贝,(因为它是全局的只读变量,存放在静态区,