gpt4 book ai didi

c - 数组元素被反向打印出来

转载 作者:太空狗 更新时间:2023-10-29 14:49:11 24 4
gpt4 key购买 nike

我想打印出数组中的所有元素来调试我的程序。

这是打印出数组所有元素的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

有时,它甚至会在每个关键字的末尾添加随机句号。为什么是这样?除了那个,我什么都没写。

最佳答案

对于初学者来说,使用字符串文字而不是字 rune 字

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

注意旅游代码段有错别字。使用名称 wordskeywords 来命名数组。

关于c - 数组元素被反向打印出来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58415845/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com