我正在運行一些示例程序來重新熟悉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
提交
取消
