2015-09-13 115 views
1

我有一个问题,将字符串文字分配给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我不能。

+0

_“为什么用'a [20]'我可以将它分配给数组”_你不能。 –

回答

4
char a[20] = "Mocha Munch"; 

这是字符数组a分配)的初始化。该语言特别允许从字符串文字初始化字符数组。

snack.brand = "Mocha Munch"; 

这是分配到一个数组。该语言不允许分配整个数组(完全)。

如果您想在C++中使用字符串,请不要浪费时间处理繁琐且易于出错的字符数组。使用std::string

相关问题