我正在運行一些示例程序來重新熟悉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 關注
- 1434 瀏覽
添加回答
舉報
0/150
提交
取消