首页 > 其他 > 详细

const char * 、 char const * 、 char * const 三者的区别

时间:2020-06-07 13:07:46      阅读:43      评论:0      收藏:0      [点我收藏+]

1、const char * p   
p指向的东西,不能通过p来修改,其指向的内容可以通过其他的指针来修改

char str[] = "hello";
const char* p = str;
p[0] = s;     // 错误,不能通过const char* 指针来修改其指向的值
str[0] = s;   // 正确,其指向的值可以通过其他非const指针来修改
p++;            // 正确, 指针可以指向其他值

2、char const * p
等价于 第一种情况  const char * p
3、char * const p   (该指针为常量)
定义p的时候必须初始化,表示p 一旦指向了一个东西之后,就不能再指向其他东西,即p是个常量,p只能指向一个固定的地址。不允许有p++操作了
但是可以通过*p 来修改它所指向的内容

char str[] = "hello";
const char* p = str;
p[0] = s;     // 正确,可以修改其指向的值
p++;            // 错误, 指针是const,一旦初始化,则不可以再指向其他内容

4、const char * const p
p 指向的地址不能被改变,而且p指向的东西也不能被改变

小结:

const 放在p前面,表示的是p 所代表的内容不能通过p来修改,但是可以通过其他变量来修改
const 放在* 后 p 前面,表示指针p 的值不能被改变,即p 所指向的内存地址不能被改变

const char * 、 char const * 、 char * const 三者的区别

原文:https://www.cnblogs.com/zhiminzeng/p/13060042.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!