1.
常量指针:表示指针指向一个被const修饰的变量;
两种写法:
1.const 类型 * 指针名;//例如const int* p;
2.类型 const * 指针名;//例如int const* p;
赋值:
1.const变量的地址
2.非const变量的地址
特点:
1.指向的内容(const)不能修改;
2.指向可以修改;
指针常量:表示指针本身是一个被const修饰的变量;
一种写法:
指向的类型 * const 指针名; // 例如 int* const p;
初始化:
非const的变量的地址;
特点:
1.必须初始化
2.指向的内容可以修改
3.指向不能修改;
常量指针常量:1.指向常量 2.本身也是常量
写法:
const int* const p;
int const* const p;
特点:
1.必须初始化
2.不可以改变指向,不能改变指向的内容;
2.区分常量指针和常量指针:const和*的位置关系;
3.const:修饰变量,表示变量是只读的;
特点: 1.必须初始化
2.不能被修改;
4.常量指针和指针常量的区别:
1.常量指针表示指针指向一个被const修饰的变量,
指针常量表示指针本身是一个被const修饰的变量;
2.常量指针不能改变指向的内容,可以改变指向;
指针常量不能改变指向,能改变指向的内容,必须初始化;
const int a = 4;
int c = 5;
int* const p = &c;//指针常量
int* p2 = &c;
int** const p1 = &p2;//指针常量
*p = 20;//*p:int//可以修改指向的内容
int d = 20;
//p = &d;//报错,不能改变指向
const int* const p3 = p2;//&a/&c/&d/p2
*p2 = 20;
//*p3 = 20;//报错:指向const
const int a = 3;
int const b = 4;//可以
int c = 5;//非const
//p指向a
int const* p = &a;//常量指针:指向const int类型
p = &c;//p指向c
//*p = 10;//const int(报错,指向的内容不能修改)
//int* p2 = &a;//报错,非const的指针不能指向const的变量
int const* p1 = &b;//常量指针:指向const int类型
p1 = &c;
来源:CSDN
作者:hsiao__fei
链接:https://blog.csdn.net/qq_39249403/article/details/103637786