如何使用结构体

结构体,是构造类型的一种,也就是由基本类型构造的类型。
构造类型:结构体struct、联合体union、枚举类型enum。

1. 定性:

新的“数据类型”。

2. 意义:

有些信息的组成数据并不止一种,
囊括我们想要描述的大多数数据。(复合类型信息)。
数据形成一体。

3. 定义方式:

1. 类型定义(注意最后的分号)

1
2
3
4
5
6
7
8
9
10
11
12
13
struct 结构体类型名
{
类型名 成员名;
};//别忘了分号

//最近学到的
typedef struct 结构体类型名
{
类型名 成员名;
} 你想要的简化名;

typedef 类型名 简化名;
//typedef就是为了给类型起别名用的

内部的单个变量类型叫做成员
主要创建在主函数外部

2. 变量定义

1
2
3
4
5
6
//变量定义方式
struct 结构体类型名 变量名;

//定义并赋初值(初始化)
struct 结构体类型名 变量名 = {常量1, 常量2...};
//常量的顺序对应定义类型的顺序。

4. 数据存储与读取

使用索引对应成员的运算符: ->(指针,左边是地址,右边是成员名) / .(左边,索引成员名)
其他一样

额外提醒: 数组不能用=,结构体可以。–数组是类型不是地址。

参考-典型例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <stdio.h>
#include <string.h>
// 结构体。
//构造类型:结构体struct、联合体union、枚举类型enum。
struct student
{
char name[50];
int age;
};typedef struct student stud;
//typedef 给类型起别名。
//typedef 已经存在的名 新类型名;

int main(void)
{
int n, minage;
stud stu1;
scanf("%d", &n);
getchar();
char minname[55] = {0};

for(int i = 0; i < n;i++)
{
scanf("%s %d",stu1.name, &stu1.age);
if(i == 0)
{
strcpy(minname, stu1.name);
minage = stu1.age;
}
else if(stu1.age < minage)
{
minage = stu1.age;
strcpy(minname, stu1.name);
}
}
printf("%s", minname);
return 0;
}

一般在一个东西的多个方面给予数据,用这些数据来排序比大小等等。

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
来发评论吧~
Powered By Valine
v1.4.16
  • Copyrights © 2023-2025 大学生暮暖
  • 访问人数:1507 | 浏览次数:2535

请我喝杯奶茶吧~

支付宝
微信