我应该提到我正在使用Turbo C ++(是旧版本),因为我的学校要求这样做。

我有这样的结构:

struct move{
 int power;
 int pp;
 char name[10];
 };


当我尝试执行以下操作创建新变量时:

move tackle;
tackle.pp = 10;
tackle.power = 20;
tackle.name = "tackle";


我收到如下错误:

Error NONAME00.CPP 11: Lvalue required

但这有效:

move tackle = {20, 10, "tackle"}

有用。

我究竟做错了什么?

附言第11行是tackle.name = "tackle",如果之前不清楚我会感到抱歉。

最佳答案

您不能分配给数组,但可以对其进行初始化。

tackle.name = "tackle";


是一项任务,而

move tackle = {20, 10, "tackle"};


是一个初始化。

要替换数组的内容,请使用strcpy

strcpy(tackle.name, "tackle");


或者,如果允许,请使用string

#include <string>

struct move{
 int power;
 int pp;
 string name;
 };

09-07 14:40