我的代码问题很小,从未知原因编译器弹出两个错误,无法编译以下代码。我收到的通知是:
多字符字符常量[-Wmultichar]
将'int'赋值给char [4]的不兼容类型;
这很奇怪,因为我将char值赋给char变量。我究竟做错了什么 ?
#include <iostream>
using namespace std;
class People
{
public:
int age;
char name[4];
};
int main()
{
People arrayP[5] = {{"Paul", 29}, {"Sue", 31},
{"Jack", 22}, {"Nil", 32}};
arraP[4].name = 'Ope';
for(int i=0; i<5; i++)
{
cout <<"Name: " << arrayP.name[i] << ", " << arrayP.age[i]<<endl
}
return 0;
}
答案 0 :(得分:3)
您有两个错误:
如果使用aggregate initialization,则必须遵循类定义的相同布局。因此{"Paul", 29}
不正确,而{29, "Paul"}
是。
char name[4]
太短而无法包含"Paul"
,因为NUL终结器没有空间。由于您使用的是C ++,只需使用 std::string
,就没有任何借口。