-2
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 つの出力サイズが異なるのはなぜですか?

4

1 に答える 1

2

sizeof(str1)は char ポインターのサイズであり、assizeof(str2)は文字列の長さ ( pupupupu) + 1である配列のサイズを示します

私のこの回答を読んでください。まったく同じではありませんが、大いに役立ちます: sizeof(&arr) は何を返しますか?

于 2013-05-17T12:58:32.920 に答える