[英]Assigning string to char array vs. struct function
好的,所以我知道以下内容不起作用。 我不能声明一个 char 数组,然后按如下方式分配它。
char a[20];
a = "Hello World"; //SYNTAX ERROR
cout << a;
但是,当我使用 struct 数据类型时,似乎我可以在初始化后分配一个 char 数组。
#include <iostream>
using namespace std;
struct Student
{
char name[10];
}
int main()
{
Student student1;
student1 = {"Will"};
cout << student1.name;
}
打印出来:Will
为什么这行得通?
第二个代码有效,因为Aggregate Initialization正在初始化一个临时对象,然后将该临时对象分配给student1
,它会复制每个成员的值。
像您这样的简单结构具有聚合初始化并且可以轻松复制。 所以当你写
student1 = {"Will"};
通过聚合初始化创建一个临时的 object Student
,然后调用复制赋值运算符。
但是您应该使用的是std::string
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.