"blah"
ですconst char [5]
。最初の行で、その配列はポインターに減衰され、最初の要素へのポインターとして変数に格納されます。これは、const 文字を指す非 const 文字へのポインタでもあります。そのはず:
const char *sz1 = "blah";
2 番目 (jrok に感謝) では、実際の配列を作成し、 で初期化し{'b', 'l', 'a', 'h', '\0'}
ます。
char *sz3 = new char[512];
512 * sizeof (char)
これにより、文字にメモリのバイトが割り当てられsz3
、先頭がポイントされます。これは、スタックではなくヒープに格納されるので、忘れないようにしdelete[]
てください。
char *sz4[512] = { 0, };
これにより、文字への 512 個のポインターの配列が作成され、それらがすべて 0 (NULL) に初期化されます。コンマは必要ありません。後でイニシャライザ リストに追加する方が簡単です。ここで、スパイラル ルールを使用して を決定できますsz4 is an array of 512 (one right) pointers (one left) to char (two left)
。
char sz5[512];
これにより、512 文字の配列が (スタック上に) 作成されます。
最後から 2 番目を除くすべてを効果的に置き換えることができますstd::string
。