vs2015吧 关注:10,172贴子:25,378
  • 2回复贴,共1

请问:第19句为什么会提示”表达式必须是可修改的左值”,因此而不

只看楼主收藏回复

请问:第19句为什么会提示”表达式必须是可修改的左值”,因此而不能运行?
// 第七章例7.5(1).cpp: 定义控制台应用程序的入口点。
//
/*C++程序设计(第3版)谭浩强 编著 P.201
在Visual Studio 2017 上运行
请问:第19句为什么会提示”表达式必须是可修改的左值”? */
#include "stdafx.h"
#include"iostream"
#include"string"
using namespace std;
struct Student//声明结构体类型 Student
{
int num; char name[20]; float score[3];
};
int main()
{
void print(Student);//函数声明,形参类型为结构体Student
Student stu;//定义结构体变量
stu.num = 12345;//以下5行对结构体变量各成员赋值
stu.name = "Li Fang";
stu.score[1] = 89;
stu.score[2] = 78.5;
print(stu);//调用print函数,输出stu各成员的值
return 0;
}
void print(Student stu)
{
cout << stu.num <<" " << stu. name <<" " << stu. score[0] <<" "
<< stu.score[1] << " " << stu.score[2] << endl;
}


回复
1楼2018-03-06 14:08
    stu.name是数组的常量,不能被赋值。stu.name[1]、stu.name[2]、stu.name[3]、...这几个就能赋值。


    回复
    2楼2018-03-06 14:40
      使用strcpy(stu.name,“Li Fang”);


      回复
      3楼2019-10-05 00:55