【发布时间】:2015-01-21 19:15:04
【问题描述】:
我的代码有一个小问题,由于未知原因编译器弹出两个错误,导致我无法编译以下代码。我收到的通知是:
多字符字符常量[-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;
}
【问题讨论】:
-
这远不是这里的严重问题。
-
您不能以这种方式分配给字符数组(C 样式字符串)。您应该改用
std::string(或使用C 字符串函数,例如strcpy)。此外,[i]应该在arrayP旁边,而不是在成员变量之后。