2016-07-31 111 views
0

當我注意到語法上的時候,我正在處理一段代碼,不可能從指向常量字符類型的指針區分指向char類型的常量指針,至少不是我所知。無論哪種方式,我嘗試並把它,我只是結束了這個:const char * foo;是一個常量字符指針,指向一個常量字符或指向字​​符的常量指針嗎?

此外,如果有兩種方法可以區分,請在您的回答或下面的評論中告知我。

謝謝。

+1

成'爲const char * foo'是一個指向'常量char'(字符它指向不能改變)。 'char * const foo'是一個指向'char'的常量指針,所以你可以改變char而不是指針的值。 – mch

+0

http://stackoverflow.com/q/22332677/2564301有幫助嗎? (如果不是實際的重複。) – usr2564301

+0

@mch謝謝。 –

回答

2
const char * foo; 

above foo是一個指向常量char的指針。這意味着你不能改變指針指向的對象內容。

char * const foo; 

above foo是一個指向char的常量指針。這意味着你可以改變指針所指向的對象內容,但你不能將其他對象指定給指針。

This應該對你有用。

2

這是比較容易記住,如果你把它類型後const資格適用的適用

char const* a;  // mutable pointer to unmutable char 
char*const b;  // unmutable pointer to mutable char 
char const*const c; // both unmutable 
char* c;   // both mutable