搜尋

首頁  >  問答  >  主體

c++ - 又遇到了'\0' null NULL 的问题了

我之前上 stackoverflow 查证过字符串的结尾是'0'-terminate啊, 如下引用. 但是今天查 string 的, 上面图片里的官方文档的说法又都变成了 null-terminated 了. 希望大家解答下, 谢谢

‘0’ terminate a string, not NULL, the NULL macro isn’t intended for use in terminating strings.----(左边包含了链接)

PHP中文网PHP中文网2814 天前620

全部回覆(2)我來回復

  • 天蓬老师

    天蓬老师2017-04-17 15:25:44

    如果是char*的字串,函式庫函數都是預設以'

    #include <string>
    #include <iostream>
    
    int main()
    {
        std::string s = "hello";
        s[1] = 'rrreee';
        std::cout << s << std::endl;
        return 0;
    }

    輸出:h llo

    回覆
    0
  • 高洛峰

    高洛峰2017-04-17 15:25:44

    所謂 null-terminated 中的 null 指的應該是 ASCII 字元集裡的 NUL,其編碼是數字 0,在 C 語言裡是 '',本質是一個 char
    而 C 語言裡 NULL 這個宏指的是空指針,也就是 ((void*)0),是一個指針型。
    兩者類型不同,本質上是不同的概念,用途也不同。
    你引用的 stackoverflow 上的原貼討論的應該是這個問題。

    回覆
    0
  • 取消回覆