当前位置:  开发笔记 > 编程语言 > 正文

C++结构值初始化

如何解决《C++结构值初始化》经验,为你挑选了1个好方法。

我正在搞乱结构,并注意到以下两个例子,只有一个有效.他们来了:

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

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


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

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

为什么第一个编译而第二个编译不?不是任何一种方式p1的对象Test?谢谢.



1> John Zwinck..:

在第一个示例中,您将在"大括号初始化" 中初始化具有两个值的结构.C++(或C)中不支持使用括号括起的列表分配给结构.

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

例如,在C++ 11中:

p1 = Test{ "hi", 5 };

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有