C++ 常量指针和指针常量的区别

指针常量(常指针)

  首先是一个常量,其次该常量是个指针。因为是一个指针类型的常量,所以定义时必须初始化一个变量的地址,且始终指向该地址不能被更改即只能赋值一次,但地址中存放的内容可以被更改

通过以下例子了解指针常量的特性:

int a,b;
int* const p = &a; //指针常量初始化
*p = 10; //操作成功,指针常量所指地址的内容可以被更改
p = &b; //操作错误,指针常量指向的地址不能被更改,因为只能赋值一次

常量指针

  字面意思常量的指针,即该指针是一个指向常量的指针变量。定义时不需要被初始化。该指针可以指向不同的变量地址,但不能通过该指针改变变量的内容

通过以下例子了解常量指针的特性:

int a,b;
const int* p;  //定义常量指针
p = &a;		//常量指针赋值
*p = 10;    //操作错误,不能通过常量指针改变变量的内容
p = &b;     //操作成功,常量指针指向的地址可以被更改

  由以上两部分的介绍,不难推导出指向常量的常指针的形式:

举例如下:

int a = 10;
const int* const p = &a; //必须初始化,且只能赋值一次,指向的地址不能改,不能通过指针改变变量的内容

参考链接:https://blog.csdn.net/navymei10220214/article/details/82873704

发布了139 篇原创文章 · 获赞 122 · 访问量 4700

猜你喜欢

转载自blog.csdn.net/qq_39661206/article/details/105118220