我有这行代码,
newCust.idNumber == ID;
ID的值是string类型,已经分配了,newCust是我的struct的名称,idNumber是我的struct中的一个字符串,我想将ID的值赋给struct的ID号,任何idead为什么这行代码请求“无效的声明”。我正在使用eclipse,而且我是C编程的初学者
答案 0 :(得分:3)
这是因为==
比较了两个值,并丢弃了该比较的结果。虽然像这样的表达式语句在C中是完全合法的,但它们非常不寻常,并且通常用作指示您输入错误的内容。这就是编译器警告你的原因。
修改强>
我尝试了=也,然后我收到此错误,从类型
分配到类型char[60]
char *
时出现不兼容的类型
您无法分配这样的字符串:您需要使用strcpy
,如下所示:
strcpy(newCust.idNumber, ID);
确保newCust.idNumber
足够长,以使ID
与其空终结符一致,即假定newCust.idNumber
为char[60]
,{{1}的值必须是59个字符或更少。
答案 1 :(得分:1)
因为您正在进行比较并丢弃结果。你可能想要
newCust.idNumber = ID;
注意单个等号。
答案 2 :(得分:1)
==
检查是否相等,它不是赋值运算符。
由于您没有检查支票的退货代码,Eclipse(正确地)会对您大喊大叫。