用printf打印char指针char数组?

时间:2012-11-08 20:50:13

标签: arrays pointers character printf

我正在尝试打印整个单词,而不仅仅是第一个字母。我可以通过一个循环来做,但我认为有一个更好的方法。我正在四处搜索并看到他们将%S更改为%c的答案,但我已经使用了%c,因为它是一个字符数组。

char* words[] = {"my", "word", "list"};
printf("The word: %c",*words[2]);

Results:
The word: l

2 个答案:

答案 0 :(得分:8)

问题是你解除引用了两次。 *单词[2]中的[2]从单词[]到“list”取消引用,然后*从“list”到'l'再次引用*取消*和瞧。

char* words[] = {"my", "word", "list"};
printf("The word: %s", words[2]);

答案 1 :(得分:4)

您需要使用%s,这是一种专门用于以空字符结尾的字符数组(即C字符串)的格式。将数组元素传递给printf时,不要取消引用该元素,如下所示:

printf("The word: %s\n", words[2]);