为了账号安全,请及时绑定邮箱和手机立即绑定

const char * const vs const char *?

const char * const vs const char *?

C++ C
慕尼黑的夜晚无繁华 2019-12-07 16:17:56
我正在运行一些示例程序来重新熟悉C ++,并且遇到了以下问题。首先,下面是示例代码:void print_string(const char * the_string){    cout << the_string << endl;}int main () {    print_string("What's up?");}在上面的代码中,print_string的参数可以改为是const char * const the_string。哪个更正确?我知道区别在于一个是指向常量字符的指针,而另一个是指向常量字符的指针。但是为什么这两个都起作用?什么时候有意义?
查看完整描述

3 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

后者阻止您修改the_string内部print_string。在这里实际上是适当的,但是冗长的措辞推迟了开发人员。

char* the_string:我可以改变char哪个the_string点,我可以修改char在它指向。

const char* the_string:我可以改变char哪个the_string点,但我不能修改char,在它指向。

char* const the_string:我不能改变char哪个the_string点,但我可以修改char在它指向。

const char* const the_string:我无法更改charthe_string指向的点,也无法修改char其指向的点。


查看完整回答
反对 回复 2019-12-07
?
慕码人2483693

TA贡献1860条经验 获得超9个赞

指向可变字符的可变指针


char *p;

指向常量字符的可变指针


const char *p;

指向可变字符的常量指针


char * const p; 

指向常量字符的常量指针


const char * const p;


查看完整回答
反对 回复 2019-12-07
  • 3 回答
  • 0 关注
  • 1399 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信