C++中常量指针&指针常量&指向常量的指针常量

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/SoftpaseFar/article/details/89711406

常量指针

定义:指向常量的指针,用const声明。

const int a = 5;
a = 10;?可不可以修改呢? 
答案是不可以的。
int b = 12;
const int a = b;
b = 20;
a = ?a会变化么?
答案a未发生变化。
const int a = 10;
const int *p = &a;
*p = 20;?可以么?
int b = 12;
p = &b;?可以么?
答案是第一个不可以,第二个可以。

 p (可以改变)    常量a(不可以改变)
0x18FF44   ------> 10

但是p的指向是可以改变的。
两种写法都可以:
int const *p = &a;
const int *p = &a;

指针常量

指针本身为常量。

常量p(不能变化)        变量a(可以改变)
0x18FF44 -------------> 10

int a = 10,b = 20;
int *const p = &a;
p = &b;?可以么?不可以!
*p = 11;?可以么?可以!

指向常量的指针常量

指针指向一个常量。
指针本身也是常量。

常量p(不能变化)      变量a(不可变化)
0x18FF44 -------------> 10

const int a = 1,b = 2;
const int *const p = &a;
*p = 10;?可以么?不可以!
p = &b;?可以么?不可以!

猜你喜欢

转载自blog.csdn.net/SoftpaseFar/article/details/89711406