一、Const
(1)变量
const int a=2;//a中的值是不能发生变化的,定义常量时,应该立刻给其赋初始值。
也可以写成int const a = 2; [a=a+2 X错误]
(2)指针
int const *p;//常量指针。指针指向的是一个整型常量,p不是常量,p是变量。
也可以写成const int *p;
int *const p;//指针常量。p本身就是一个常量,定义时需要初始化,p所指向的地址处的内容可以发生变化。
//p不能指向整型常量
(1)变量
const int a=2;//a中的值是不能发生变化的,定义常量时,应该立刻给其赋初始值。
也可以写成int const a = 2; [a=a+2 X错误]
(2)指针
int const *p;//常量指针。指针指向的是一个整型常量,p不是常量,p是变量。
也可以写成const int *p;
int *const p;//指针常量。p本身就是一个常量,定义时需要初始化,p所指向的地址处的内容可以发生变化。
//p不能指向整型常量
(3)字符串
const char *p; //*p是const,p可变 指针指向可以变,但指针指向地址处的内容不能变
const (char *) p;//p是const,*p可变 指针指向地址处的内容可以变,但是指针指向不能变
char* const p; //p是const,*p可变
const char* const p; //p和*p都是const
char const * p;// *p是const,p可变
(char*) const p;//p是const,*p可变
char* const p;// p是const,*p可变
char const* const p;// p和*p都是const
(4)class对象声明中 常对象(所有成员变量都是常量,不能修改)
通过常对象只能调用常函数,但是常函数可以被该类的任何对象(常对象或者非常对象)访问