代码第九行同时定义了t1和t2两个结构体变量吗?我不理解
#include<stdio.h>
int main(void)
{
struct Test
{
int x;
int y;
}t1,t2;
t1.x = 3;
t1.y = 4;
t2 = t1;
printf("t2.x = %d,t2.y = %d\n",t2.x,t2.y);
return 0;
}
是的,一个结构体可以定义多个这样类型的变量,当然数组也可以
不知道你这个问题是否已经解决, 如果还没有解决的话:代码第九行同时定义了t1
和t2
两个结构体变量。这两个结构体变量在struct Test
类型结构体的定义内部声明。
t1
和t2
都是struct Test
类型的结构体变量,它们具有相同的结构和成员。每个结构体变量包含两个整数成员x
和y
。
在代码中,我们给t1
的x
成员赋值为3,y
成员赋值为4。
然后,我们通过t2 = t1
将t1
的值复制给t2
,即将t1
的成员值分别赋给了t2
的相应成员。所以,t2
的x
成员值为3,y
成员值为4。
最后,我们使用printf
函数打印出t2
的成员值,结果为"t2.x = 3, t2.y = 4"。
所以,代码第九行定义了两个结构体变量t1
和t2
,它们是struct Test
类型的实例,用于存储和处理具有相同结构和成员的数据。
把结构体看成是一种数据类型,新的数据类型名为:struct Test, 对应的用这种新数据类型定义两个变量:struct Test t1, t2; ,和用基础数据类型定义两个变量没有区别如:int i,N; 。