@MooingDuck:普通的旧 C 风格字符串文字也被描述为以“NUL”结尾,并且它们[可以在其中嵌入“NUL”](/sf/ask/2449313121/)。当然,面向 C 字符串的 API 不会看到第一个嵌入的“NUL”之后的任何内容,因此它通常相当无用,但这并不意味着文字不能包含它们。C++ 字符串知道它们的大小,因此不存在终端“NUL”来*定义*它们终止的位置,但它们总是以“NUL”终止。要点是,`std::string` 是以 `NUL` 结尾的,就像 C 字符串文字一样。 (3认同)