printf("%c","abcdefgh"[4]);
以下程序的输出为e
。但我不知道它是怎么回事?我在谷歌和这里搜索了很多,但没有找到这个代码的正确解释。我对此代码的解释如下:
“这只是为了获得一个
char
。即,第4个char
从0
开始。答案是'e'
”。
答案 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”是输出的原因。