黑马程序员技术交流社区
标题: const char *p、char const *p、char * const p的区别 [打印本页]
作者: Meniny 时间: 2014-8-21 07:13
标题: const char *p、char const *p、char * const p的区别
- const char *p
- char const *p
- char * const p
复制代码
这三个有什么区别呢?
前两个可以互换,它们声明了一个指向字符常量的指针,这意味着不能改变它所指向的字符的值。
char * const p声明了一个指向(可变)字符的指针常量,也就说你不能修改指针。
作者: cjfire 时间: 2014-8-21 09:28
好贴,但是最后一句有点迷糊。修改指针意味着什么?
作者: qq541955920 时间: 2014-8-21 14:33
神贴。。点赞!
作者: xiniuniu 时间: 2014-8-21 14:44
本帖最后由 xiniuniu 于 2014-8-21 15:01 编辑
区分这几个指针的一个小技巧
const char *p
char const *p
char * const p
const char* const p
从*号开始 分开 左右两部分,*号在左侧一边
const char* p 从右向左读 p 指向 const char* // 指向常量的指针 指针可以修改,所指对象不能修改
char const* p 从右向左读 p 指向 char const* //指向常量的指针 指针可以修改,所指对象不能修改
char* const p 从右向左读 const p 指向 char* //常量指针 指针不能修改,所指对象可以进行修改
const char* const p 从右向左读 const p 指向 const char* //指向常量的常量指针 指针和所指对象都不能进行修改
作者: xiniuniu 时间: 2014-8-21 15:03
char * const p = "i love c";
p = "c++"; //不可以。p为常量指针,一但给定了一个值之后在编译阶段就不允许再修改了
作者: Meniny 时间: 2014-8-24 10:06
请认真看帖仔细分析
作者: xiniuniu 时间: 2014-8-24 22:03
;P 哈哈哈!!
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |