C++ 错误" expression must be a modifiable lvalue "

c++ error " expression must be a modifiable lvalue "

本文关键字:modifiable be lvalue must 错误 expression C++      更新时间:2023-10-16

我对这里的代码有一个问题,我在这个带有一个结构的简单代码中遇到了一个错误,如果你编译它,那么编译器在错误语句中声明"表达式必须是可修改的左值"。我在此代码中基本上想要的是分配一个具有结构数组的名称。所以当有写 x[1].identification = "Id"; ,然后编译器给出错误 。我陷入这个问题有一段时间了.

任何人都可以对此给出解决方案吗?!

谢谢


这是代码:

#include "stdafx.h"
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<iomanip>
#include<windows.h>
//#include <ctime>
//#include <dos.h>
#include<dos.h>
#include<conio.h>
#include<cstdio>
#define max 20
using namespace std;

struct person
{
char identification[20];
long int code;
char group [20];
int experience;
int age;
};

int main() 
{
person x[10];
x[1].identification = "Id";  // this is where the error is being shown
system("cls");
return 0;
}

您正在尝试将const char*分配给char数组。这是没有道理的。请改用std::string

struct person {
    std::string identification;
    long int code;
    std::string group;
    int experience;
    int age;
};

您可能还希望创建一个构造函数,否则codeexperienceage是未定义的。您可能应该在施工时需要它们。