char *str1 = "pupupupu";
char str2[] = "pupupupu";
printf("%s\t%d\n", str1, (int)sizeof(str1));
printf("%s\t%d\n", str2, (int)sizeof(str2));
出力:
pupupupu 8
pupupupu 9
私の質問: 2 つの出力サイズが異なるのはなぜですか?
sizeof(str1)
は char ポインターのサイズであり、assizeof(str2)
は文字列の長さ ( pupupupu
) + 1である配列のサイズを示します
私のこの回答を読んでください。まったく同じではありませんが、大いに役立ちます: sizeof(&arr) は何を返しますか?