常量指针
定义:指向常量的指针,用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;?可以么?不可以!