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”是输出。