C++11編譯問題:warning: ISO C++11 does not allow conversion from string literal to 'char *'

在新寫的採用C++11標準的編譯器裏,進行編譯以後,原來沒有任何提示的語句,竟然出現如下問題:

char *pName = "NULL";

warning: ISO C++11 does not allow conversion from string literal to 'char *'

我雖然知道這個是指針指向了不可修改的常量字符串,但在C++98 中,該種類型的語句首先是支持的,其次也不會出現類似的C++11之類的標誌。

查閱各種資料後發現,主要原因是:

在C++11裏,對類型加了更強對定義,即指針指向的內容如果不可修改,就建議把該指針確認爲const指針類型;如果不加const標誌符,就提示一個告警。

PS:C++11確實相比C++98,作了更多的語法和語義擴充,值得學習。

參考:

https://stackoverflow.com/questions/9650058/deprecated-conversion-from-string-literal-to-char

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章