/* 定义一个常量a,并初始化a的值为100 */
int const a = 100;
/* 定义一个常量指针p, 指向一个常量a */
int const *p_a = &a;
/* ps: 常量只能用常量指针 */
/*
常量指针: 指向常量的指针变量叫“常量指针”
a> 定义格式 TYPE const *xxx = yyy
b> 理解:
根据“常量指针”的的定义可以看出“常量指针”是一个指针。
该指针具有以下特点:
b.1> 该指针本身是一个变量,所以该指针是可以被修改的
b.2> 该指针只能指向一个常量
b.3> 对于上述列子。const修饰的是*p_a,所以*p_a是“不变的,不可修改的”。又因为 *p_a === a,所以a也是不可修改的(符合a的定义)
*/
/* 定义变量b, 初始化为100 */
int b = 100;
/* 定义一个指针常量 p_b */
int * const p_b = &b;
/*
指针常量: 指针类型的常量叫“指针常量”
a> 定义格式 POINTER_TYPE * const xxx = yyy
b> 理解:
根据“指针常量”的定义可以看出“指针常量”是一个指针类型的常量。其本质数据类型仍然是一个指针。
该指针具有一下特点:
b.1> 该指针本身是一个常量,所以该指针是不可以被修改的。
b.2> 该指针只能指向“非常量数据类型”
b.3> 对于上述例子. const 修饰的是指针符号p_b(pointer),故该指针p_b是一个指针常量
*/
指针常量、和常量指针的比较
猜你喜欢
转载自blog.csdn.net/Fusen0504/article/details/84134607
今日推荐
周排行