ansys17.0安装包百度云:error C2106: '=' : left operand must be l-value

来源:百度文库 编辑:中科新闻网 时间:2024/04/30 06:17:45
编程时出现这个错误,请问是什么意思?
程序是
#include<stdio.h>
void del(int num[],char name[][8],char dep[][10])
{int i,j;
int m;
extern wor;
printf("请输入要删除的员工ID:");
scanf("%d",&m);
for (i=1;i<=wor;i++);
{if (num[i]==m)
{for(j=i;j<wor;j++)
num[j]=num[j+1];name[j]=name[j+1];dep[j]=dep[j+1];
}
}
}
用来实现删除数据的操作,
它显示(11) : error C2106: '=' : left operand must be l-value
(11) : error C2106: '=' : left operand must be l-value
应该怎么修改?

行参定义为char name[][8],char dep[][10]
name,dep都是二维字符数组,所以name[j]是一维字符数组,相当于一个const char *,所以不能作为等号的左操作数

name[j]=name[j+1];
dep[j]=dep[j+1];
这两句都是错误的

这里表示给常量赋数了
比如:
int a;
10 = a; //error C2106,错误就会发生
这里应该是数组超出范围了。
---------------------------------------------------
改为:
for(j=i;j<wor;j++)
{
num[j]=num[j+1];
name[j]=name[j+1];
dep[j]=dep[j+1];
}