C语言比较两个结构体的值是否相等代码
时间: 2024-12-17 14:32:58 浏览: 17
结构体变量的复制与比较
在C语言中,如果想要比较两个结构体的值是否完全相等,通常需要提供一个自定义的比较函数,因为默认的`==`运算符并不适用于结构体。以下是一个简单的例子:
```c
#include <stdio.h>
#include <stdbool.h> // 引入bool类型
// 定义一个结构体
struct Person {
int age;
char name[50];
};
// 比较两个Person结构体的指针是否指向的内容相等的函数
bool structs_equal(const struct Person *p1, const struct Person *p2) {
return (p1->age == p2->age) && !strcmp(p1->name, p2->name);
}
int main() {
struct Person person1 = {30, "Alice"};
struct Person person2 = {30, "Alice"};
if (structs_equal(&person1, &person2)) {
printf("The two persons are equal.\n");
} else {
printf("The two persons are not equal.\n");
}
return 0;
}
```
在这个示例中,`structs_equal`函数接受两个`Person`结构体的指针,并通过比较它们的成员变量来判断它们是否相等。
阅读全文