9.1 结构体
9.1.1 概述
数组:描述一组具有相同类型数据的有序集合,用于处理大量相同类型的数据运算。
有时我们需要将不同类型的数据组合成一个有机的整体,如:一个学生有学号/姓名/性别/年龄/地址等属性。显然单独定义以上变量比较繁琐,数据不便于管理。
C语言中给出了另一种构造数据类型——结构体。
9.1.2 结构体变量的定义和初始化
定义结构体变量的方式:
- 先声明结构体类型再定义变量名
- 在声明类型的同时定义变量
- 直接定义结构体类型变量(无类型名)
结构体类型和结构体变量关系:
4.结构体类型:指定了一个结构体类型,它相当于一个模型,但其中并无具体数据,系统对之也不分配实际内存单元。
5.结构体变量:系统根据结构体类型(内部成员状况)为之分配空间。
//1.先定义类型,再定义变量(常用)
struct stu
{
char name[50];
int age;
};
struct stu s1 = { "mike", 18 };
//2.定义类型同时定义变量
struct stu2
{
char name[50];
int age;
}s2 = { "lily", 22 };
//3.一次性定义
struct
{
char name[50];
int age;
}s3 = { "yuri", 25 };
9.1.3 结构体成员的使用
#include<stdio.h>
#include<string.h>
//结构体类型的定义
struct stu
{
char name[50];
int age;
};
int main()
{
struct stu s1;
//1.如果是普通变量,通过点运算符操作结构体成员
strcpy(s1.name, "abc");
s1.age = 18;
printf("s1.name = %s, s1.age = %d\n", s1.name, s1.age);
//2.如果是指针变量,通过->操作结构体成员
strcpy((&s1)->nam