定义使用结构体变量
(一)定义结构体类型
1.用户自己建立的由不同类型数据组成的组合型的数据结构称为结构体
如:
struct Date
{int month;
int day;
int year;
};
struct Student
{int num;
char name[20];
char sex;
int age;
struct Date birthday;
char addr[20];
};
结构体中的成员可以属于另一个结构体类型,例如上例子中的birthday
这只是建立了结构体类型,并没有定义变量,所以系统对之也不分配存储单元
(二)定义结构体类型变量
(1)先声明类型,再定义变量
struct Student student1,student2;
(2) 声明类型的同时定义变量
struct Student{
int num;
char name[20];
.............
}student1,student2;
(三)结构体变量初始化和引用
初始化小例子:
1 #include<stdio.h> 2 int main(){ 3 struct Student{ 4 long int num; 5 char name[20]; 6 char sex; 7 char addr[20]; 8 }a={1001,"Li",'M',"BeiJing"}; 9 printf("name:%s\naddress:%s\n",a.name,a.addr); 10 }
同类的结构体变量可以互相赋值 如:student1=student2
引用小例子:
1 #include<stdio.h> 2 int main(){ 3 struct student{ 4 int num; 5 char name[20]; 6 }student1; 7 scanf("%d%s",&student1.num,student1.name); 8 printf("学号:%d\n姓名:%s\n",student1.num,student1.name); 9 }
需要注意一点:scanf输入num时有取值符,而输入name时没有,这是因为数组名本身就代表地址
务实,说实话!