gpt4 book ai didi

c - 在结构中初始化 main vs 中的 char 数组

转载 作者:太空宇宙 更新时间:2023-11-04 06:26:08 25 4
gpt4 key购买 nike

我正在尝试初始化一个字符数组

如果我在 main 中这样做,它工作正常

char arr1[20] = "initial";
printf("%s", arr1);

但是如果我尝试在其他任何地方(例如在结构中)执行此操作,那么请尝试在我的主函数中使用它,例如

struct foo 
{
char arr1[20] = "initial";
}

int main(void)
{
struct foo foobar;
printf("%s", foobar.arr1);
}

struct foo 
{
char arr1[20];
}

int main(void)
{
struct foo foobar;
foobar.arr1 = "initial";
printf("%s", foobar.arr1);
}

我开始出现错误。为什么一个有效而另一个无效?

最佳答案

您将结构定义变量初始化混淆了。

struct 定义说明哪些类型构成一个 struct 以及它们的名称是什么,例如:

struct foo 
{
char arr1[20];
};

说“struct foo 是我们刚刚定义的一种类型,它由 char 数组 [20] 组成”。目前还没有这种类型的实际变量。

然后您可以声明和初始化此类型的实例,其方式与您在第一个示例中声明和初始化 arr1 的方式类似:

struct foo foobar = { "initial" };

关于c - 在结构中初始化 main vs 中的 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26622592/

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