数组元素被反向打印出来
Array elements being printed out in reverse
我想打印出数组中的所有元素来调试我的程序。
这是打印出数组所有元素的for循环
for(int i = 0; i <= 9; i++) {
printf("Words: %s\n", &words[i]);
}
我有一个包含 const char
数组的头文件。这是任务所必需的。
我知道将它们放在头文件中可能不是一个好的做法。
const char *words[10] = {'foo', 'bar', 'hello', 'world'};
我 运行 这段代码的输出非常奇怪,因为它向后打印所有内容。
Keywords: oof
Keywords: rab
Keywords: olleh
Keywords: dlrow
有时,它甚至会在每个关键字的末尾随机添加句号。
为什么是这样?除了那个,我什么都没写。
初学者使用字符串文字而不是字符文字
const char *words[10] = {"foo", "bar", "hello", "world"};
注意数组中从索引4开始的所有元素都是用空指针初始化的
只需使用
for(int i = 0; words[i] != NULL && i < 10; i++) {
printf("Keywords: %s\n", keyWords[i]);
^^^^^^^^
}
这是一个演示程序
#include <stdio.h>
int main(void)
{
const char *words[10] = {"foo", "bar", "hello", "world"};
for ( size_t i = 0; words[i] != NULL && i < 10; i++ ) puts( words[i] );
return 0;
}
它的输出是
foo
bar
hello
world
注意游览代码段有错别字。使用名称 words
或 keywords
来命名数组。
您应该只在编写 scanf 而不是 printf 时使用“&keywords”。
执行以下操作:
printf("Keywords: %s\n", keyWords[i]);
我想打印出数组中的所有元素来调试我的程序。
这是打印出数组所有元素的for循环
for(int i = 0; i <= 9; i++) {
printf("Words: %s\n", &words[i]);
}
我有一个包含 const char
数组的头文件。这是任务所必需的。
我知道将它们放在头文件中可能不是一个好的做法。
const char *words[10] = {'foo', 'bar', 'hello', 'world'};
我 运行 这段代码的输出非常奇怪,因为它向后打印所有内容。
Keywords: oof
Keywords: rab
Keywords: olleh
Keywords: dlrow
有时,它甚至会在每个关键字的末尾随机添加句号。 为什么是这样?除了那个,我什么都没写。
初学者使用字符串文字而不是字符文字
const char *words[10] = {"foo", "bar", "hello", "world"};
注意数组中从索引4开始的所有元素都是用空指针初始化的
只需使用
for(int i = 0; words[i] != NULL && i < 10; i++) {
printf("Keywords: %s\n", keyWords[i]);
^^^^^^^^
}
这是一个演示程序
#include <stdio.h>
int main(void)
{
const char *words[10] = {"foo", "bar", "hello", "world"};
for ( size_t i = 0; words[i] != NULL && i < 10; i++ ) puts( words[i] );
return 0;
}
它的输出是
foo
bar
hello
world
注意游览代码段有错别字。使用名称 words
或 keywords
来命名数组。
您应该只在编写 scanf 而不是 printf 时使用“&keywords”。 执行以下操作:
printf("Keywords: %s\n", keyWords[i]);