什么叫做C2106“=”:左操作数必须为左值 20

编写VC程序给我报错误
错误语句 router1[0].data=ip[i].data;
前面面都结构体
霏青11 问题未开放回答
推荐于2017-10-10 01:23:48 最佳答案
char a = 0;
*((int*)a) = 10;
此时10左边的是个临时变量。
变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。在指令式语言中,变量通常是可变的;但在纯函数式语言(如Haskell)中,变量可能是不可变(immutable)的。在一些语言中,变量可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。

其他回答

赋值号左右 指针数值

router1 声明结构体数组
data 声明 char 数组 能赋值

赋值号左右要

int data[20];
data 数组要用循环语句赋值
for (i=0;i<20;i++) router1.data[i] = ip.data[i];

router1 ip 结构数组:
i= ...
for (k=0;k<20;k++) router1[0].data[k]=ip[i].data[k];
本回答被提问者采纳
L_o_o_n_i_e | 推荐于2017-09-28 02:51:40
评论
router1 声明结构体数组data 声明 char 数组 能赋值赋值号左右要

int data[20];
data 数组要用循环语句赋值
for (i=0;i<20;i++) router1.data[i] = ip.data[i];

router1 ip 结构数组:
i= ...
for (k=0;k<20;k++) router1[0].data[k]=ip[i].data[k];
雨晴 | 教师 | 发布于2015-09-08
评论
  router1 声明的是结构体数组。
  data 声明的如果是 char 数组 也不能赋值?
  总之,赋值号左右要一致。

  int data[20];

  data 是数组,要用循环语句赋值
  for (i=0;i<20;i++) router1.data[i] = ip.data[i];

  如果 router1 和 ip 是结构数组:
  i= ...
  for (k=0;k<20;k++) router1[0].data[k]=ip[i].data[k];
杨柳风83 | 中小学教师 | 发布于2015-07-25
评论
意思是编译器错误
以下生成C2106
// C2106.cpp
int main() {
int a;
1 = a; // C2106
a = 1; // OK
}
lihan1985912 | 老师 | 发布于2015-08-16
评论
收起 其他2条回答

为您推荐:

×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消