请问关于c语言 const的问题

下面表示什么意识constchar*pcharconst*pchar*constp... 下面表示什么意识
const char *p
char const *p
char *const p
展开
 我来答
BrotherGao
2013-06-20 · TA获得超过1536个赞
知道小有建树答主
回答量:334
采纳率:0%
帮助的人:406万
展开全部
楼主你好!

A. const char *pContent;
B. char * const pContent;
C. char const *pContent;
D. const char* const pContent;
对于前三种写法,我们可以换个方式,给其加上括号
A. const (char) *pContent;
B. (char*) const pContent;
C. (char) const *pContent;

这样就一目了然。根据对于const修饰非指针变量的规则,很明显,A=C.
对于A,C, const修饰的类型为char的变量*pContent为常量,因此,pContent的内容为常量不可变.
对于B, 其实还有一种写法: const (char*) pContent;
含义为:const修饰的类型为char*的变量pContent为常量,因此,pContent指针本身为常量不可变.
对于D, 其实是A和B的混合体,表示指针本身和指针内容两者皆为常量不可变
总结:
(1) 指针本身是常量不可变
(char*) const pContent;
const (char*) pContent;
(2) 指针所指向的内容是常量不可变
const (char) *pContent;
(char) const *pContent;
(3) 两者都不可变
const char* const pContent;
还有其中区别方法:
沿着*号划一条线,
如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;
如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。

希望我的回答对你有帮助!
whanyzt
2013-06-20 · TA获得超过481个赞
知道小有建树答主
回答量:257
采纳率:0%
帮助的人:134万
展开全部
char *const p,这里的p是指向cha*的指针,P不能再被修改了,即P不能再指向别的了。

const char *p和char const *p是一样的,都是指向const char*的,也就是说P指向的内容不可被修改,但是P还可以指向别的字符串。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chujiangke001
2013-06-20 · TA获得超过1605个赞
知道小有建树答主
回答量:1352
采纳率:0%
帮助的人:698万
展开全部
const char *p指向常量的指针
char const *p char *const p 常量指针。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-20
展开全部
const char *p ------>指向常量的字符指针

char const *p
char *const p ----------> 常量指针,类型是字符型
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式