const char *和char *const的區別
char * const
英文[ const pointer to char ]
const char * [指向靜態字符的指針]
[pointer to const char]
char * 這個太簡單了,不說了
那麼現在東西很明顯了,什麼可以改變什麼不可以
很明顯,第一種指針是不能變的,as it is const
第二種指針可以變,但是字符不能變,它是const char
它的好處是參數不易出現問題,有很好的穩定性。
摘自:大家看看:const char* const GetName(const char* pUser) const中四個const的用法
1)const修飾一個變量,是表名這個變量不能被修改。如果放在成員函數前面是表名成員函數的返回值不能被修改,如果是修飾成員函數的形式參數,則表名這個參數在函數中不能被修改。
2)當const放在函數的最後面時表明這個成員函數是“只讀”函數,不能修改它設計的所有類成員對象。
第一個const是表示返回一個字符指針常量
第二個是表示成員函數的返回值不能被修改,正好與第一個相符
第三個const表示這個參數在函數中不能被修改
最後一個就是成員函數是“只讀”函數,不能修改它設計的所有類成員對象
char *pA;
....
const char *pB = pA;
沒問題!
char **ppA;
...
const char **ppB = ppA;
無法從“char ** ”轉換爲“const char ** ”!!!
ppA是一個指向char *的指針, ppB是一個指向const char *的指針,根據最前面的試驗,const char *和char *是相容的,char* 可以轉換爲const char *,但是相容性不能傳遞,編譯器就不知道const char **和char **之間有什麼聯繫了,呵呵.