const char *和char *const的區別

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 **之間有什麼聯繫了,呵呵.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章