const是用来定义一个常变量的标识符
所谓常变量 1.必须在定义时初始化
2.初始化之后则不可进行更改
声明方式: 1.const 数据类型 常量名 = 常量值
2.数据类型 const 常量名 = 常量值
const float PI = 3.14159
float const PI = 3.14159
注: 1.const int *p(const在*的左边)
*p为常量,不能通过更改*p即更改指针所指向的地址来更改内容,只能通过p = &x的形式来直接更改当前指针所指的地址里的内容 通俗:脑袋不能动,只能把器官换了去改变
int b = 22;
int c = 11;
const int *p = &b;
p = &c;
cout<<*p<<endl; //p为11
2.int *const p(const在*的右边)
p为常量不能通过p = &x的形式来直接更改当前指针所指的地址里的内容,可以通过更改*p来更改指针所向的地址来更改内容 通俗:器官不能动,找个新脑袋,也就改变了
int b = 22;
int *const p = &b;
*p = 200;
cout<<b<<endl; //b为200
注:const与#define定义的符号常量的区别
1.const定义的常量时有类型的,#define定义的常量无类型(即const定义的常量替换时有类型的限制的,而#define时直接的转换)
2.const在定义变量编译时需要分配内存,#define不需要
3.const定义的变量的作用域只在它作用的函数内,#define的作用域为定义点到程序结束,但是可用#undef在想要结束时进行中止
特注:在C++中尽量用enum(枚举)和const以及inline(内联)来替换#define