赞
踩
struct定义:C语言允许用户自己建立有不同类型的数据组成的组合类型的数据结构,它被称为结构体。
例如:一个学生{性别,年龄,学号,姓名},花括号里面的称为结构体的子项,也称为结构体成员
- struct student
- {
- char name[20]; //姓名为字符数组
- int age; //年龄为整形
- char sex[2]; //性别为字符
- int num[10]; //学号为整型
- }; //分号为结构体的结束标志
上述程序中struct为关键字不可省略,经过上面的指定struct student,就在本程序中是一个可以使用的合法类型名,它包括姓名,年龄,性别,学号。
定义结构体变量:先声明结构体类型,在定义该类型的变量
Struct Student-->结构体类型
student1,student2-->结构体变量
在定义结构体变量后,系统会为之分配内存单元。根据结构体类型中包含的成员情况分布。
例如上面有(20+4+2+40)=66;
- struct sutdent
- {
- char name[20]; //姓名为字符数组
- int age; //年龄为整形
- char sex; //性别为字符
- int num; //学号为整型
- }student1.student2; //结构体变量student1,student2
struct 结构体名
{
成员列表;
}变量列表;
注意:
1.结构体类型与结构体变量是不同的概念。只能对变量赋值,取存或运算,而不能对结构体类型赋值等;在编译时,对结构体类型不分配内存,只对结构体变量赋值。
2.结构体类型中的成员可以与程序中的变量名相同,但是二者代表的对象不同。
3.结构体整变量中的成员,可以单独使用;
结构变量的初始化和引用
- #define _CRT_SECURE_NO_WARNINGS 1
- #include <stdio.h>
- int main()
- {
- struct sutdent
- {
- char name[20]; //姓名为字符数组
- int age; //年龄为整形
- char sex; //性别为字符
- int num; //学号为整型
- }student1 = { "王小乔",18,'m',2021032700 }; //结构体变量student1
- printf("name:%s\nage:%d\nsex:%c\nnum:%d", student1.name, student1.age, student1.sex, student1.num);
- return 0;
运行结果:
name:王小乔
age:18
sex:m
num:2021032700
结构体变量引用方式
结构体变量名.成员名
scanf函数输入结构体体变量
用scanf输入结构体变量时,必须分别输入他们的成员值,注意,scanf函数中在成员Student1中,student.name没有&,这是应为数组名本身就代表地址。
- #define _CRT_SECURE_NO_WARNINGS 1
- #include <stdio.h>
- int main()
- {
- struct sutdent
- {
- char name[40]; //姓名为字符数组
- int age; //年龄为整形
- char sex; //性别为字符
- int num; //学号为整型
- }student1; //= { "王小乔",18,'m',2021032700 }; //结构体变量student1,student2 //分号为结构体的结束标志
- scanf("%s %d %c %d", student1.name, &student1.age, &student1.sex, &student1.num);
- printf("name:%s\nage:%d\nsex:%c\nnum:%d", student1.name, student1.age, student1.sex, student1.num);
- return 0;
- }
运行结果:
name:王小乔
age:18
sex:m
num:2021032700
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。