常量修饰符
在C中常用define定义变量,实际上这种方法是在预编译的时进行字符置换。
#define LIMIT 1000
程序中全部出现LIMIT全部置换为1000.LIMIT不是变量,没有类型,不占用存储单位,而且容易出错。
c++用const修饰符来定义常量
const int LIMIT = 1000;
这个常量LIMIT是有类型的,占用存储单位,有地址,可以用指针指向它,但不能修改它。
const与指针的组合
(1)指向常量的指针,内容不可变,地址可变
const char* name = "sjj"
含义:声明一个名为name的指针变量,它指向一个字符型常量,初始化name为指向字符串“sjj”
name[3] = 'a'; x //不可以改变指针所指的常量
name = "zhang" //可以改变指针所在的地址
(2)常指针,把指针指向的地址声明为常量,地址不可变,内容不可变
char * const name = "chen"
(3)指向常量的常指针,指针本身不能改变,他所指向地址中的数据也不能改变。
const char * const name = "chen"