4个回答
展开全部
前者定义P为常量,即只能单向赋值一次,P++展开为p=p+1,重复赋值给常量,出错,后者P为地址变量,地址变量是指向该变量的存储地址值如:4B3F6A,不能赋给一个字符值(字符相当于ascii表中对应的整数)如强制赋值,会把原地址变量P变为一个两位数的整数,造成地址指针溢出。而p++,则表示把该地址变量向下一个存储单元移动一位,如4B3F6A到4B3F6B.所以合法。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char *const p 修饰指针为常量 指针指向内容可以是变量~既 p++这样的操作不合法 *p='3' 合法
const char * p 是p指向的内容是常量~p是变量~
~既 p++合法 *p='3' 不合法
const char * p 是p指向的内容是常量~p是变量~
~既 p++合法 *p='3' 不合法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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、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也是一个指向指针的指针,那个指针又指向一个字符串变量。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询