什么是指向const类型的指针?
答案:3 悬赏:10 手机版
解决时间 2021-04-07 11:52
- 提问者网友:疯子也有疯子的情调
- 2021-04-06 23:31
什么是指向const类型的指针?
最佳答案
- 五星知识达人网友:天凉才是好个秋
- 2021-04-07 01:09
const int * pInt --- pInt指向一个int型的常量,意思是这个int 不能被修改,只能读
pInt = &a;
*pInt = 123;//错误,pInt所指的Int内容不能被修改
int * const pInt --- pInt为一个指针,这个指针是个常量,指针常量的意思是他本身的地址不能被修改: pInt = &a;
pInt = &b;//错误,pInt的地址不能改变
但是可以 *pInt = 123;//指的内容是可以修改的
pInt = &a;
*pInt = 123;//错误,pInt所指的Int内容不能被修改
int * const pInt --- pInt为一个指针,这个指针是个常量,指针常量的意思是他本身的地址不能被修改: pInt = &a;
pInt = &b;//错误,pInt的地址不能改变
但是可以 *pInt = 123;//指的内容是可以修改的
全部回答
- 1楼网友:忘川信使
- 2021-04-07 03:42
1.指向const对象的指针
const int *p;
这个p是一个指向int类型const对象的指针,const限定了指针p所指向的类型,而并非p本身。也就是说p本身并不是const。在定义时不需要对它进行初始化,还可以给p重新赋值,使其指向另一个const对象。但不能通过p修改所指向对象的值。
示例1:int a=0; p=&a; 可以。
示例2:*p=20; 不可以。
结论:这种指向const对象的指针只是限制不能修改p指向对象的数值,而不是限制p指向什么对象。
把一个const对象的地址赋给一个不是指向const对象的指针也是不行的。
示例3:const int b=10;
int *p2=&b; //error
const int *p3=&b; //ok
结论:因为变量b有const修饰,不能被修改。但指针p2是一个普通的指针,可以修改指向对象的值,两种声明矛盾,所以不合法。而指向const对象的指针不允许修改指针指向对象的数值,所以这种方式合法。
2.const指针
int c=20;
int *const p4=&c;
指针p4称为const指针。它和指向const对象的指针恰好相反,它不能够修改所指向对象,但却能够修改指向对象的数值。另外,这种指针在声明时必须初始化。
3.指向const对象的const指针
const int d=30;
const int *const dp=&d;
指针dp既不能修改指向的对象,也不能修改只想对象的值。
const int *p;
这个p是一个指向int类型const对象的指针,const限定了指针p所指向的类型,而并非p本身。也就是说p本身并不是const。在定义时不需要对它进行初始化,还可以给p重新赋值,使其指向另一个const对象。但不能通过p修改所指向对象的值。
示例1:int a=0; p=&a; 可以。
示例2:*p=20; 不可以。
结论:这种指向const对象的指针只是限制不能修改p指向对象的数值,而不是限制p指向什么对象。
把一个const对象的地址赋给一个不是指向const对象的指针也是不行的。
示例3:const int b=10;
int *p2=&b; //error
const int *p3=&b; //ok
结论:因为变量b有const修饰,不能被修改。但指针p2是一个普通的指针,可以修改指向对象的值,两种声明矛盾,所以不合法。而指向const对象的指针不允许修改指针指向对象的数值,所以这种方式合法。
2.const指针
int c=20;
int *const p4=&c;
指针p4称为const指针。它和指向const对象的指针恰好相反,它不能够修改所指向对象,但却能够修改指向对象的数值。另外,这种指针在声明时必须初始化。
3.指向const对象的const指针
const int d=30;
const int *const dp=&d;
指针dp既不能修改指向的对象,也不能修改只想对象的值。
参考资料:http://blog.csdn.net/jiang1013nan/archive/2009/10/11/4653321.aspx
- 2楼网友:神也偏爱
- 2021-04-07 02:38
就是指针指向的是一个常量,不能通过指针对其修改,如char const *指针名
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯