指针和const的组合
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指针和const的组合相关的知识,希望对你有一定的参考价值。
1.指向常量的指针
格式:const 类型 * 指针名 或者 类型 const * 指针名
这种类型的指针可以获取到变量或者常量的指针,但是不能通过指针去修改被指向的对象的值,同时常量的地址只能赋给指向常量的指针。
例如:
1 int value = 1; 2 const int MAX = 100; 3 4 const int * p1; 5 int * p2; 6 p1 = &value;//正确,变量地址可以赋给指向常量的指针 7 p1 = &MAX; //正确 8 p2 = &MAX;//错误,常量地址只能赋给指向常量的指针 9 10 *p1 = 200; //错误,不能通过指针去修改被指向对象的值 11 *p2 = 100;//正确
2.指针常量
格式:类型 * const 指针名
这种指针同普通的常量的意义类似,表明指针的值只能在定义的时候进行初始化,同时定义后不能进行修改,即不能改变指针的指向,但是可以通过指针去间接改变被指向对象的值
例如:
1 int value = 50; 2 3 int * const p1 = &value; 4 5 int value_another = 100; 6 p1 = &value_another;//错误,不能改变指针常量的指向 7 8 *p1 = 200;//正确
3.指向常量的指针常量
格式:const 类型 * const 指针名 或者 类型 const * const 指针名
这种指针是上面两种指针的综合体,指针值只能在定义的时候进行初始化,之后不能修改指针值,同时不能通过指针去修改被指向的对象的值
例如:
1 int var = 100; 2 const int value = 100; 3 4 const int * const p1 = &var;//正确 5 const int * const p2 = &value;//正确 6 7 p1 = &value;//错误,不能修改指针的指向 8 *p1 = 200; //错误,不能修改被指向对象的值
以上是关于指针和const的组合的主要内容,如果未能解决你的问题,请参考以下文章