常量指针指针常量

const定义

定义一个int型的只读的变量并初始化其值为20
const int m=20;(变量地值必须初始化)。
int const m=20;(表示相同的意思)。
m=20;(这种情况是不允许的,因为只读类型的变量不能修改,包括不能自增,自减,也不能赋值)

常量指针

定义:是一个指针,它指向常量。

const在*之前,
const int n = 10;
int a=100;
const int *p = &n;

1.可以不初始化。
2. 常量指针可以指向const修饰的变量,也可以指向普通变量(p=&a或者p=&n);。
3. 可以改变指针的方向( p = &m;)。
4. 不能通过指针去修改指向变量的地址值(*p1=100;该语句编译报错,不能通过指针修改指向内存中的值)。

指针常量

定义:它是一个常量,数据类型为指针

const在*之后
int x=100;
int b=20
int * const p2=&x;

1,必须初始化。
2,不能改变指针的指向(指针变量不能赋值,自增,自减)(p2=&20;该语句不合法)。
3,可以通过指针改变指向的变量的之(p2=300;该语句合法p可以赋值 )。

总结:常量指针可以改变指向,不能改变指向变量的地址值。反之则相反。const在前不能改值,const在后,不能改指向。

扩展

const int *const p;

1,必须初始化
2,不能改变指针方向
3,不能通过指针修改指向的变量地值(*p不能赋值)

猜你喜欢

转载自blog.csdn.net/white___white/article/details/98497080