这个printf是什么意思?

时间:2012-08-10 18:09:46

标签: c printf

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

以下程序的输出为e。但我不知道它是怎么回事?我在谷歌和这里搜索了很多,但没有找到这个代码的正确解释。我对此代码的解释如下:

  

“这只是为了获得一个char。即,第4个char0开始。答案是'e'”。

5 个答案:

答案 0 :(得分:6)

字符串文字是数组,因此可以编入索引:"abcdefgh"[0]例如'a'

答案 1 :(得分:1)

你可以这样写:

char *tmp="abcdefgh";
printf("%c",tmp[4]);

答案 2 :(得分:1)

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

格式字符串为"%c",这意味着printf将打印一个字符。它打印的字符是

"abcdefgh"[4]

即。 4 char[9]的索引"abcdefgh"处的字符,即字符'e'

答案 3 :(得分:1)

在C中,字符串表示为数组,因此该语句

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

相当于

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

答案 4 :(得分:1)

%c打印一个字符。因此,要解释为什么你得到“e”,因为输出a有索引0,b索引为1,c索引为2,d索引为3,最后e有索引4.您选择打印的是哪个([4])。这就是“e”是输出的原因。