c ++错误"表达式必须是可修改的左值"

时间:2015-01-10 23:57:31

标签: c++

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

有人能解决这个问题吗?!

谢谢


以下是代码:

#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;

}

1 个答案:

答案 0 :(得分:1)

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

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

您可能还想创建构造函数,否则codeexperienceage未定义。你应该在施工时要求它们。