c中字符串與c++中字符串的不同

最近用c++寫程序時遇見了一個很有意思的問題,記錄一下。c中的字符串與c++中的字符串居然不同,大家不要笑我知道他當然不同,c++中可以把字符串作爲一個類對象來看待,而c中把它看做一個普通的在內存裏依次排列的字符集合。我說的自然不是這個不同,我關注的是在c++編譯器的情況下不能像在c編譯器處理字符串的方式進行處理。大家都知道在c中我們要接收一個字符串是可以用一個字符指針去指向它例如:
這裏寫圖片描述
這裏寫圖片描述
在c中這是可以接收的
下面來看看在c++中
這裏寫圖片描述
這裏寫圖片描述
這個程序依然可以運行,但是會產生一個警告:warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]|
這是因爲在c++中認爲字符串是常類型數據,所以指針的類型也應該常類型做如下修改:
這裏寫圖片描述
這樣就可以消除警告!

發佈了28 篇原創文章 · 獲贊 7 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章