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

以下程序的输出是e. 但是不知道怎么样?我在谷歌和这里搜索了很多,但没有找到该代码的正确解释。我得到的这段代码的解释:

“这只是为了得到一个char。即第4个char从.开始0。所以答案是'e'“。

4

5 回答 5

6

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

于 2012-08-10T18:11:27.567 回答
1

你可以这样写:

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

格式字符串为"%c",表示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

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

于 2012-08-10T18:14:45.910 回答