我定义了一个结构体
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
}
我定义了一个结构体
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");
}