永发信息网

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

答案:4  悬赏:0  手机版
解决时间 2021-04-01 13:18
  • 提问者网友:山高云阔
  • 2021-03-31 17:01
const char*, char const*, char*const的区别问题
最佳答案
  • 五星知识达人网友:三千妖杀
  • 2021-03-31 18:00
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;
}
全部回答
  • 1楼网友:慢性怪人
  • 2021-03-31 18:58
第一个是和第二个都是指针指向的值不可变,第二个是指针不可变
  • 2楼网友:人類模型
  • 2021-03-31 18:06
看*和const谁离右边的定义指针名最近,*离得近的话表示该指针指向一个常量字符串,不能通过该指针改变字符串的内容;const离得近的话表示这是一个常量指针,指针指向的位置一开始就确定,不能改变。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯