gpt4 book ai didi

C++ 结构值初始化

转载 作者:搜寻专家 更新时间:2023-10-30 23:54:59 24 4
gpt4 key购买 nike

我在摆弄结构,注意到在以下两个示例中,只有一个有效。他们在这里:

struct Test
{
char *name;
int age;
};

Test p1 = { "hi", 5 };
//works


struct Test
{
char *name;
int age;
}p1;

p1 = { "hi", 5 };
//error

为什么第一个可以编译而第二个不能? p1 不是 Test 的对象吗?谢谢。

最佳答案

在第一个示例中,您在“大括号初始化”中初始化一个具有两个值的结构。 C++(或 C)不支持使用括号括起来的列表赋值给结构。

但是,您可以使用大括号初始化创建一个新结构,然后将其分配给旧结构 (p)。 C++(和 C)确实支持将一个结构分配给另一个相同类型的结构。

例如,在 C++11 中:

p1 = Test{ "hi", 5 };

关于C++ 结构值初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34281327/

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