const char * const vs const char *?

我正在运行一些示例程序来重新熟悉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。哪个更正确?


我知道区别在于一个是指向常量字符的指针,而另一个是指向常量字符的指针。但是为什么这两个都起作用?什么时候有意义?


慕尼黑的夜晚无繁华
浏览 1405回答 3
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:我无法更改char要the_string指向的点,也无法修改char其指向的点。

慕码人2483693

指向可变字符的可变指针char *p;指向常量字符的可变指针const char *p;指向可变字符的常量指针char * const p;&nbsp;指向常量字符的常量指针const char * const p;
打开App,查看更多内容
随时随地看视频慕课网APP