0
printf("%c","abcdefgh"[4]);

次のプログラムの出力はe. でも、どうだか分からない?Google と here でよく検索しましたが、このコードの正しい説明が見つかりませんでした。このコードについて私が得ている説明:

「これは1つだけを取得するためのものcharです。つまり、4番目charは から始まり0ます。したがって、答えは'e'」です。

4

5 に答える 5

6

文字列リテラルは配列であるため、たとえば"abcdefgh"[0]isにインデックスを付けることができます。'a'

于 2012-08-10T18:11:27.567 に答える
1
printf("%c","abcdefgh"[4]);

フォーマット文字列は です"%c"。これは、1 文字を出力することを意味しprintfます。印刷する文字は

"abcdefgh"[4]

つまり、 のインデックス4にあるchar[9] "abcdefgh"文字は、文字'e'です。

于 2012-08-10T18:13:07.537 に答える
1

C では、文字列は配列として表現されるため、このステートメントは

printf("%c","abcdefgh"[4]);

と同等です

char a[] = "abcdefgh";
printf("%c",a[4]);
于 2012-08-10T18:13:13.763 に答える
1

%c1 文字を印刷します。a出力のインデックスが 0、bインデックス 1、cインデックス 2、dインデックス 3、そして最後にインデックス 4であるため、なぜ「e」が得られるのかを説明すると、出力するためeに選択したもの ( [4]) が表示されます。これが、「e」が出力である理由です。

于 2012-08-10T18:14:45.910 に答える
1

次のように記述できます。

char *tmp="abcdefgh";
printf("%c",tmp[4]);
于 2012-08-10T18:12:48.827 に答える