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