永发信息网

const char*, char const*, char*const的区别问题

答案:4  悬赏:0  手机版
解决时间 2021-04-01 13:18
const char*, char const*, char*const的区别问题
最佳答案
const char*, char const*, 两者相同。指针指向的值是常量,不允许变。指针不是常量,它可以先指向a, 也可以变成再指向b(例如允许 p=a;p=b;)。
char*const,指针是常量,一旦初始化指向了a, 则不允许改变成指向b。指针指向的值可以变(例如允许:p[1]='O';)。
程序例子如下:
#include

int main()
{
{
char a[6]="abcd", b[10]="1234";
const char *p;
p=a;
printf("11: %s\n",p);
p=b; printf("12: %s\n",p);
// error p[1]='O'; printf("13: %s\n",p);
};
{
char a[6]="abcd", b[10]="1234";
char * const p =a; //const pointer
printf("21: %s\n",p);
//error p=b; printf("22: %s\n",p); // not allow point to b
p[1]='O'; printf("23: %s\n",p);
};
{ char a[6]="abcd", b[10]="1234";
char const *p; //same as case1
p=a;
printf("31: %s\n",p);
p=b; printf("32: %s\n",p);
//error p[1]='O'; printf("33: %s\n",p);
};

return 0;
}
全部回答
第一个是和第二个都是指针指向的值不可变,第二个是指针不可变
看*和const谁离右边的定义指针名最近,*离得近的话表示该指针指向一个常量字符串,不能通过该指针改变字符串的内容;const离得近的话表示这是一个常量指针,指针指向的位置一开始就确定,不能改变。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
泰山石送人好不好
外地户口可以买沪A黄牌吗
有50万块!想知道存哪个银行利息高?银行的大
我给一个女孩发了十一元红包 但是她回了我十
花胶与中药相冲吗
buy的三单是
现代科学会与佛学汇合吗
馋嘴小栈在什么地方啊,我要过去处理事情
宁乡交契税是什么银行
被蟑螂碰过的厨具还能用吗?
等级公路砂石垫层施工工艺
金庸群侠传X天赋有哪些
帝豪商务宾馆(榆林米脂县)地址在哪,我要去那
向日花舞蹈培训这个地址在什么地方,我要处理
楚乔传:这五个人物,相当于王者荣耀里的谁
推荐资讯
中华字海在线查询
对待深爱的人,受委屈时是告诉她还是会选择沉
市场营销必须学什么只是?如果学了市营,出来
27了还没有女朋友
职工在6o以前是工伤,6o岁以后怎么做
QQ线报群是什么意思?
年纪叫取个口号?能代表年纪的。喊起顺口霸气
孙俪获最佳女演员是怎么回事 幽默自荐好剧本
亟待转型什么意思
古代汉朝美女是什么发型
java中的字符串:String str = "1234567";怎
斯柯达昊锐低速转弯熄火求解决
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?