LF4*_*LF4 4 arrays printf pointers character
我正在尝试打印整个单词,而不仅仅是第一个字母.我可以通过循环来做到这一点,但我认为有更好的方法.我正在四处搜索并看到他们将%S更改为%c的答案,但我已经在使用%c,因为它是一个字符数组.
char* words[] = {"my", "word", "list"};
printf("The word: %c",*words[2]);
Results:
The word: l
Run Code Online (Sandbox Code Playgroud)
问题是你解除引用了两次.单词[2]中的[2]从单词[]到"list"取消引用,然后*从"list"到'l'再次引用*取消*和瞧.
char* words[] = {"my", "word", "list"};
printf("The word: %s", words[2]);
Run Code Online (Sandbox Code Playgroud)
您需要使用%s,一种专门用于空终止字符数组(即 C 字符串)的格式。当您将数组的元素传递给 时,您不会取消引用该数组的元素printf,如下所示:
printf("The word: %s\n", words[2]);
Run Code Online (Sandbox Code Playgroud)