代码1:
struct demo
{
int a;
}d[2];
int main()
{
d[0].a=5;
d[1]=d[0];
return 0;
}
此代码可以正常工作
代码2:
struct demo
{
int a;
}d[2];
int main()
{
d[0].a=5;
d[1]=d[0];
if(d[0]==d[1])
{
printf("hello");
}
return 0;
}
此代码给出错误
error: invalid operands to binary == (have 'struct demo' and 'struct demo')
为什么在Code 2中会出现此错误?
您需要自己比较结构的成员,如下所示:
if(d[0].a ==d[1].a)
structs不是equals(==
)的有效操作数,操作数必须是算术类型或指针。我们可以从看到这个草案C99标准部分6.5.9
相等运算符:
以下条件之一应成立:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句