當我注意到語法上的時候,我正在處理一段代碼,不可能從指向常量字符類型的指針區分指向char類型的常量指針,至少不是我所知。無論哪種方式,我嘗試並把它,我只是結束了這個:const char * foo;
。是一個常量字符指針,指向一個常量字符或指向字符的常量指針嗎?
此外,如果有兩種方法可以區分,請在您的回答或下面的評論中告知我。
謝謝。
當我注意到語法上的時候,我正在處理一段代碼,不可能從指向常量字符類型的指針區分指向char類型的常量指針,至少不是我所知。無論哪種方式,我嘗試並把它,我只是結束了這個:const char * foo;
。是一個常量字符指針,指向一個常量字符或指向字符的常量指針嗎?
此外,如果有兩種方法可以區分,請在您的回答或下面的評論中告知我。
謝謝。
const char * foo;
above foo
是一個指向常量char的指針。這意味着你不能改變指針指向的對象內容。
char * const foo;
above foo
是一個指向char的常量指針。這意味着你可以改變指針所指向的對象內容,但你不能將其他對象指定給指針。
This應該對你有用。
這是比較容易記住,如果你把它類型後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
成'爲const char * foo'是一個指向'常量char'(字符它指向不能改變)。 'char * const foo'是一個指向'char'的常量指針,所以你可以改變char而不是指針的值。 – mch
http://stackoverflow.com/q/22332677/2564301有幫助嗎? (如果不是實際的重複。) – usr2564301
@mch謝謝。 –