两个结构体变量相同成员的比较

我定义了一个结构体
struct b

char name[30];
int fenshu
}a[2]={{“QQ”,10},{“QQ”,20}};
int main()

if(a[0].name==a[1].name)
printf(“11”);
else
printf(“00”)”
我想要问的是,他们的名字是一样的,为什么输出的是00
是char型它们不能比较吗?
但是如果是if(a[0].fenshu<a[1].fenshu)
输出的是11

望采纳

在C语言中,你不能使用==运算符来比较两个字符数组(即字符串)。应该使用strcmp函数,它接受两个字符串作为参数,如果它们相等,则返回0,如果它们不相等,则返回非零值。

可以修改你的代码:

if (strcmp(a[0].name, a[1].name) == 0) {
    printf("11");
} else {
    printf("00");
}
  • 字符数组比较不能用 ==【这个比较的是地址】 ,要用 strcmp,