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

来源:百度知道 编辑:UC知道 时间:2024/05/09 19:46:10
编写VC程序的时候,给我报的错误
错误语句为 router1[0].data=ip[i].data;
前面和后面都是一个结构体
不是,data的定义是int
这个是2个的定义
struct IP {
int sender;
int receiver;
int data[20];
};
struct ROUTER1 {
int sender;
int receiver;
int data[20];
};
嘿嘿,谢啦,以前用的是数组,后来只输入一个字符,忘记修改啦,谢谢啦

是不是赋值号左右 一边是指针,一边是数值?

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

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

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

char a = 0;
*((int*)a) = 10;
此时10左边的是个临时变量。
变量来源于数学,