我正在运行一些示例程序来重新熟悉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
:我无法更改char
要the_string
指向的点,也无法修改char
其指向的点。
慕码人2483693
TA贡献1860条经验 获得超9个赞
指向可变字符的可变指针
char *p;
指向常量字符的可变指针
const char *p;
指向可变字符的常量指针
char * const p;
指向常量字符的常量指针
const char * const p;
- 3 回答
- 0 关注
- 1399 浏览
添加回答
举报
0/150
提交
取消