const和指针一起使用有三种组合情况:指向常量的指针、常指针、和指向常量的常指针。
一、指向常量的指针
定义: const 数据类型 *指针变量名
含义: 一个指向常量的指针变量。
说明: 此指针可更改指向其他的常量,但此指针所指向的常量不能被更改。
例子:
const char *name = "chen"; //声明指向常量的指针name
name[3] = 'a'; //出错,指针所指向的变量的值不能改变
name = "zhang"; //合法,指针自身的值可改变
二、常指针
定义: 数据类型 *const 指针变量名 = 初始化值
含义: 一个指向变量的不可改变的指针变量。
说明: 在定义常指针时必须初始化;
此指针的值不可改变,但此指针所指向的变量值可改变。
例子:
char *const name = "chen"; //声明常指针name
name[3] = 'a'; //合法,指针所指向的变量值可改变
name = "zhang"; //出错,指针自身值不可改变
三、指向常量的常指针
定义: const 数据类型 *const 指针变量名 = 初始化值
含义: 一个指向常量的常指针变量。
说明: 在定义时此指针必须初始化;
此指针的值和它所指向的常量的值均不可被改变。
例子:
const char *const name = "chen"; //声明指向常量的常指针
name[3] = 'a'; //出错,指针所指向的变量值不可改变
name = "zhang"; //出错,指针自身值不可改变