相同结构体类型的两个变量可以像普通变量一样进行复制。如果person1和person2属于同一结构体,那么下面语句是合法的:
person1=person2;
person2=person1;
但是,下面语句是不允许的:
person1==person2;
person1!=person2;
C语言不允许对结构体变量进行任何逻辑操作。在这种情况下,需要对它们进行比较,可以逐个地址比较所有成员。
示例 请编写一个程序,演示结构体变量的比较。
程序演示了如何讲一个结构体变量复制到另一个相同类型的结构体变量中。该程序还进行逐个成员的比较,以确定两个结构体变量是否相等。
程序
struct class
{
int number;
char name[20];
float marks;
}
main()
{
int x;
struct class student1={111,"Rao",72.50}
struct class student2={222,"Reddy",67.00}
struct class student3;
student3=student2;
x=((student3.number==student2.number)&&(student3.marks==student2.marks))?1:0;
if(x==1)
{
printf("\nstudent2 and student3 are same\n\n");
printf("%d %s %f\n",student3.numxber,
student3.name
student3.marks)
}
else
printf("\nstudent2 and student3 are different\n\n");
}