【C基础】C 结构体

结构体

一个或多个变量的集合,这些变量的类型可以不同。为了处理方便将变量组织在一个名字下。
例如:统计某班学生的信息(包括学号、姓名、成绩),每个学生需要至少三个变量,如果学生人数较多,那需要的变量就非常多了。这就用到结构体了。

结构体定义

struct Student{
	int num;
	char name[20];
	int score;
};

struct为关键字,student为结构体的类型名,num,name,score为结构体的成员。
分号一定要加,分号前面可以加结构体变量,如下

struct Student{
	int num;
	char name[20];
	int score;
}Zhangsan;

敲重点!!!上面类似于变量的声明
在这里插入图片描述

定义结构体变量

方式一: 先定义结构体类型,再定义变量

struct Student{
	int num;
	char name[20];
	int score;
};
struct student Zhangsan;

方式二:在定义结构体类型同时,定义变量

struct Student{
	int num;
	char name[20];
	int score;
}Zhangsan, Lisi;

方式三:typedef重定义结构体类型名(推荐!!!)

typedef struct Student{
	int num;
	char name[20];
	int score;
}students;
Students Zhangsan, Lisi;

方式四:省略结构体类型名

struct {
	int num;
	char num[20];
	int score;
}Zhangsan, Lisi;

不能再增加变量。

结构体变量的初始化

struct Student{
	int num;
	char name[20];
	int score;
};
struct student Zhangsan = {1011, "Zhangsan", 89};

扩展示例

struct Block{ 
		WORD dir[4];
 	COLORREF color;
  }g_Blocks[3] = {
			{0x0F00, 0x4444, 0x0F00, 0x4444, RED}, 
			{0x0660, 0x0660, 0x0660,0x0660, BLUE}, 
			{0x4460, 0x02E0, 0x0622, 0x0740, MAGENTA}
		}; 

结构体变量的应用

结构体变量成员的引用:结构体变量名.成员名

Zhangsan.num = 1011;
scanf("%d", &Zhangsan.score);
printf("%d %d\n", Zhangsan.num, Zhangsan.score);
  1. 当结构体变量的成员也是结构体类型时,引用必须是最底层的成员变量,如下
    在这里插入图片描述3. 成员名可与程序中的变量名同名,二者代表不同对象
    在这里插入图片描述
  2. 、可以引用结构体变量成员的地址,也可以引用结构体变量的地址,例如:
    scanf("%d", &A.num); //输入A.num的值
    printf("%d", &A); //输出Bob的首地址
    目的:主要用作函数参数,传递结构体变量的地址。
    5、允许具有相同类型的结构变量可以相互赋值,其它情况不允许对结构变量直接赋值。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值