1. const关键字
const关键字用来定义常量。C++中的const关键字修饰的是一个真正的常量值,而不是C中的变量(只读)。在const修饰的常量在编译期间就已经确定下来。
2. 举例
int main()
{
const int *a; //const修饰的是指针a所指向的内容空间不可被更改
int * const a; // 表示a指针指向不可更改;但a指向的内存空间可以更改;
const int a = 10; // const int a 和 int const a 是一样的;都表示一个常量;
int const a = 10; // const int a 和 int const a 是一样的;都表示一个常量;
return 0;
}
struct Teacher
{
int a;
int b;
};
// t指针的内存地址内容不能被修改
/*
void print(Teacher const *t)
{
// t->a = 10; ----- t指针的内存地址内容不能被修改,否则编译失败
t = NULL;
}*/
// t这个指针地址不能被修改
/*
void print(Teacher * const t)
{
t->a = 10;
//t = NULL; ------- t这个指针地址不能被修改,否则变异失败
} */
// t这个指针地址,以及t指向的内容空间不能被修改
/*
void print(const Teacher * const t)
{
//t->a =10;
//t = NULL;
}*/
3. const和define宏定义的区别
const int a = 5 约等于 define int a = 5
const | define宏定义 |
---|---|
在编译阶段处理 | 在编译预处理阶段处理 |
提供类型检查和作用域检查 | 只是单纯的替换,取消使用#undefine |