C语言结构体(struct)类型的各种用法

网友投稿 403 2022-12-01

C语言结构体(struct)类型的各种用法

文章目录

一、基本概念

在C语言中,可以定义结构体类型,将多个相关的类型的变量包装成为一个整体使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型。在C语言中,结构体不能包含函数。

1、标准定义方式

3、无类型名的结构体(此法最差,只能用一次)

#include //直接定义结构体变量,没有结构体类型名struct { int age; float score; char sex;} t={23, 98, 'f'};int main (){ printf("年龄:%d 分数:%f 性别:%c\n", t.age, t.score, t.sex); return 0;}

4、用typedef给自定义的结构体加一个名字(typedef 已有类型 新类型名)

三、访问结构体成员

struct student{ char name[10]; //相当于一个字符串,即char型数组 int num; //int型数据,编号 int age; //年龄 float score[3]; //3门课的分数 char sex; //性别} stu;

在这个结构体中,如果要访问第二门课的分数,则需要这样访问:

//输入:scanf("%f", &stu.score[1]); //取的是第二门课成绩的地址//输出:printf("%f", stu.score[1]) //输出的是第二门课成绩

struct student{ char name[10]; //相当于一个字符串,即char型数组 int num; //int型数据,编号 int age; //年龄 float score[3][2]; //3门课的分数,都有两次测验 char sex; //性别} stu;

//输入:scanf("%f", &stu.score[1][1]); //取的是第二门课第二次测验成绩的地址//输出:printf("%f", stu.score[1][1]) //输出的是第二门课第二次测验的成绩

3、其他更高维数组的用法都是一样的道理,以此类推。

四、结构体数组

struct student{ char name[10]; //相当于一个字符串,即char型数组 int num; //int型数据,编号 int age; //年龄 float score[3][2]; //3门课的分数,都有两次测验 char sex; //性别} stu[3];

这里的stu就是一个结构体数组,包含了3个student类型的结构体变量。 接下来我们试着访问第3个结构体变量的第1门课第2次测验的成绩:

//输入:scanf("%f", &stu[2].score[0][1]); //取的是第三个结构体变量第一门课第二次测验成绩的地址//输出:printf("%f", stu[2].score[0][1]) //输出的是第三个结构体变量第一门课第二次测验的成绩

五、结构体的嵌套

struct student{ int num; //int型数据,编号 int age; //年龄 char sex; //性别 struct GoodStudent { char name[10]; //相当于一个字符串,即char型数组 float score[3][2]; //3门课的分数,都有两次测验 }} stu[3];

此时要访问结构体GoodStudent好学生中的成绩,仍然是用“ . ”成员访问符来访问。

比如要访问第2个结构体变量的好学生的第2门课第1次测验的成绩:

//输入:scanf("%f", &stu[1].GoodStudent.score[1][0]); //取的是第2个结构体变量的好学生的第2门课第1次测验的成绩的地址//输出:printf("%f", stu[1].GoodStudent.score[1][0]) //输出的是第2个结构体变量的好学生的第2门课第1次测验的成绩成绩

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java小知识之查询数据库数据的元信息
下一篇:kali base64 编码和解码
相关文章

 发表评论

暂时没有评论,来抢沙发吧~