[英]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.