簡體   English   中英

無法將字符串文字分配給char數組

[英]Cannot assign string literal to char array

我在將字符串文字分配給char數組時遇到問題。 這是我的代碼:

#include <iostream>

using namespace std;
struct CandyBar{
    char brand[20];
    double weight;
    int calories;
};
int main()
{
    char a[20] = "Mocha Munch";
    cout << a;
    CandyBar snack;
    snack.brand = "Mocha Munch";
    snack.weight = 2.3;
    snack.calories = 350;
    cout << "Brand of snack: " << snack.brand << endl;
    cout << "Weight of snack: " << snack.weight << endl;
    cout << "Calories of snack: " << snack.calories << endl;
    return 0;
}

我的問題是為什么使用a[20]可以將其分配給數組,但是使用brand卻不能。

char a[20] = "Mocha Munch";

這是字符數組a 初始化不是賦值)。 該語言專門允許根據字符串文字初始化字符數組。

snack.brand = "Mocha Munch";

這是分配給數組。 該語言根本不允許分配整個數組。

如果要在C ++中使用字符串,請不要將時間浪費在繁瑣且容易出錯的字符數組上。 使用std::string

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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