返回信息流我已经得到最终的答案,关键是有什么规律可以更好地记忆和区分这种题呢?
A. const char *pContent;
B. char * const pContent;
C. char const *pContent;
D. const char* const pContent;
这是一条镜像帖。来源:北邮人论坛 / cpp / #45042同步于 2010/10/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
const定义的这四个指针变量你能分得清么?
ilovelife
2010/10/21镜像同步28 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
B 和 C 是一样的对吧
【 在 ilovelife 的大作中提到: 】
: 我已经得到最终的答案,关键是有什么规律可以更好地记忆和区分这种题呢?
: A. const char *pContent;
: B. char * const pContent;
: ...................
A=C
*号前后加const意义不同,B,D不需要解释了吧
【 在 ilovelife 的大作中提到: 】
:
: 我已经得到最终的答案,关键是有什么规律可以更好地记忆和区分这种题呢?
: A. const char *pContent;
: ...................
我的理解
A D 是指向const char类型的指针,其中A指向的对象可以是const也可以不是,但是无论是不是const都不可以通过*pContent修改其内容;D是指向const类型的const指针,定义时必须初始化。
B C 是const类型指针。但是B中pContent为const型,不可被赋新值,即被指向内容的存储位置不可改变(pContent=&new会报错);C中*pContent是const,不可以通过赋值改变*pContent,即该存储空间指向的内容不可变(*pContent=new会报错)。
的确不好记。。
A 指针指向的内容是常量, 指针的值可以变,但内容不能变;
B 指针是常量,所以指针不能变,但指向的内容可以变;
D 指针不能变,内容不能变;
C 没见过。。。
只要记住const修饰它右边的符号就行了
A. const char *pContent; const修饰的char,也就是*pContent
B. char * const pContent; const修饰pContent
C. char const *pContent; const修饰*pContent
D. const char* const pContent; 第一个const修饰char,第二个修饰pContent
【 在 windfail 的大作中提到: 】
: 只要记住const修饰它右边的符号就行了
: A. const char *pContent; const修饰的char,也就是*pContent
:
: ...................
好记,顶一个
我觉得最好的方法是这样的
以*符为界,const在*的左边表示指针本身为const
而const在*的右边表示指针指向的内存为const
【 在 windfail 的大作中提到: 】
: 只要记住const修饰它右边的符号就行了
: A. const char *pContent; const修饰的char,也就是*pContent
:
: ...................