char *const p;与 const char * p;的区别

请高手帮我详细说明,感激啊... 请高手帮我详细说明,感激啊 展开
 我来答
疾婉于0u
2014-03-08 · TA获得超过607个赞
知道小有建树答主
回答量:246
采纳率:0%
帮助的人:298万
展开全部

  

const char  * p等价于 char const  *p ,定义出来的指针可以p++;

char * const 定义出来的指针不可以++;

const 表“只读”
wsm1102
推荐于2017-10-13
知道答主
回答量:11
采纳率:0%
帮助的人:16.1万
展开全部
前者定义P为常量,即只能单向赋值一次,P++展开为p=p+1,重复赋值给常量,出错,后者P为地址变量,地址变量是指向该变量的存储地址值如:4B3F6A,不能赋给一个字符值(字符相当于ascii表中对应的整数)如强制赋值,会把原地址变量P变为一个两位数的整数,造成地址指针溢出。而p++,则表示把该地址变量向下一个存储单元移动一位,如4B3F6A到4B3F6B.所以合法。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wangtk1982
2007-03-25 · TA获得超过3742个赞
知道大有可为答主
回答量:3206
采纳率:100%
帮助的人:1451万
展开全部
char *const p 修饰指针为常量 指针指向内容可以是变量~既 p++这样的操作不合法 *p='3' 合法

const char * p 是p指向的内容是常量~p是变量~
~既 p++合法 *p='3' 不合法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
码农小明哥
推荐于2018-08-06 · 互联网程序员一枚,欢迎交流
码农小明哥
采纳数:9602 获赞数:25062

向TA提问 私信TA
展开全部
const char *p;的意思是p指向的目标空间的内容不可变化,char * const p;的意思是指针p的值不可变,但它指向目标的值可变。

1、char * const p : 定义一个指向字符的指针常数,即const指针,其实const 放在p前证明p是一个const,p是不允许改变的。
2、const char* p : 定义一个指向字符常数的指针,const 是c描述char的,char是const,所以指针可变。
扩展知识:
char const* p : 等同于const char* p;const char **p是一个指向指针的指针,那个指针又指向一个字符串常量,char ** p也是一个指向指针的指针,那个指针又指向一个字符串变量。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式