簡體   English   中英

將字符串分配給 char 數組與 struct function

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM