printf("%c","abcdefgh"[4]);
以下程序的输出是e
. 但是不知道怎么样?我在谷歌和这里搜索了很多,但没有找到该代码的正确解释。我得到的这段代码的解释:
“这只是为了得到一个
char
。即第4个char
从.开始0
。所以答案是'e'
“。
字符串文字是数组,因此可以索引到:"abcdefgh"[0]
is 'a'
,例如。
你可以这样写:
char *tmp="abcdefgh";
printf("%c",tmp[4]);
printf("%c","abcdefgh"[4]);
格式字符串为"%c"
,表示printf
应打印一个字符。它应该打印的字符是
"abcdefgh"[4]
即 的索引4
处的字符char[9]
"abcdefgh"
,即字符'e'
。
在 C 中,字符串表示为数组,因此此语句
printf("%c","abcdefgh"[4]);
相当于
char a[] = "abcdefgh";
printf("%c",a[4]);
%c
打印一个字符。所以解释为什么你得到“e”,因为输出a
有索引 0,b
有索引 1,c
有索引 2,d
有索引 3,最后e
有索引 4。这是你选择打印的 ( [4]
)。这就是为什么“e”是输出。