1

同僚(真剣に私はchar *を使用しません:))これに縮小するバグを作成しました:

testVar.append('\0'); //testVar is std::string

だから彼は基本的にこれを修正します:

testVar.append("\0");

私の質問は、なぜ最初のものは合法ではないのですか? 長さ 0 で終端文字列と見なすことはできませんか? VS10 std lib の実装を自分の目で確かめようとしましたが、後悔しました。:)

4

1 に答える 1

6

'char文字列 / とは異なるリテラルを作成しますchar *。一部の言語では、単一の文字を長さ 1 の文字列として扱いますが、C++ では単一の文字をプリミティブ データ型として定義し、文字列は文字の配列です。

于 2013-01-24T09:26:08.733 に答える