1.指向const对象的指针
1.1 表现形式
const double *ptr,const void *ptr
1.2 如何理解
无法通过ptr这个指针变量去修改所指向内存区域的值,但是ptr这种指针变量可以重复赋值,指向不同的内存地址
注意ptr这个指针变量赋值时,既可以赋值为const类型变量(书中所说的const对象)的地址,也可以赋值为非const类型变量(书中所说的非const对象)的地址
通过以下代码示例进一步理解:
const double pi = 3.14;
double x = 9.99;
const double *ptr1 = π //成立
const double *ptr2 = &x; //成立,只是不能通过ptr2这个指针去修改x的值
double *ptr3 = &x; //但是如果有普通double类型指针也指向x变量,可以通过这个指针修改x的值!!
*ptr3 = 1.11;
1.3 如何应用
指向const对象的指针常用作函数的形参,以确保传递给函数的实际对象在函数执行中不被修改
2.const类型的指针
2.1 表现形式
int errCode = 500;
int *const curCode = &errCode;
2.2 如何理解
这种类型的指针变量就是说本身的值不能再被修改,不能再指向别的内存区域了,必须在定义的时候完成内存区域的指向动作
注意:const类型的指针必须在定义时初始化,而指向const对象的指针在定义时不需要对它进行初始化,重点还是要区分清楚指针变量本身是否可以被修改,以及指针变量所指向的内存区域是否可以被修改
3.指向const对象的const指针
3.1 表现形式
const double pi = 3.14;
const double *const pi_ptr = π
3.2 如何理解
相当于把前两种const组合起来使用,在以上的示例中,既不能修改pi_ptr所指向对象的值,也不允许修改pi_ptr这个指针的值
标签:pi,const,指向,读书笔记,double,限定符,ptr,指针 From: https://www.cnblogs.com/hzbkd/p/17531859.html