目录

九、结构体(基础)

9.1 创建结构体

9.2 结构体初始化

9.3 结构体变量的数据打印

10、结语


九、结构体(基础)

定义:用于描述复杂对象,

9.1 创建结构体

比如:描述一个学生,需要的是,姓名+性别+年龄+学号。

代码9_1:创建一个学生结构体:

#include<stdio.h>struct Student
{//创建结构体char name[20];//用于存储姓名char sex[10];//用于存储性别short age;//用于存储年龄int number;//用于存储学号
};

说明:

(1)创建结构体需要用到关键字struct,同时需要结构体名称;

(2)结构体中的变量在创建时均未存储,所以不用初始化,但数组中的元素个数必须为确定的;

(3)结构体创建结束后的分号不可少;

9.2 结构体初始化

         创建好一个结构体后,在主函数中,我们需要再创建一个结构体变量,即申请空间来存储信息后,才能够初始化。

代码9_2,创建结构体变量并初始化:

#include<stdio.h>struct Student
{char name[20];char sex[10];short age;int number;
};int main()
{//创建结构体变量st1、st2struct Student st1={"张三","男",20,20211024};struct Student st2={"李四",“男”,18,20212025};return 0;
}

说明:

以上代码即完成了创建结构体变量以及初始化,st1、st2为结构体变量,类型是struct Student类型,初始化应使用大括号,其中字符串用双引号引起,数字不需要,并且初始化顺序与结构体中保持一致

补:

字符串中,如果是字母字符串,每一个字母所占空间为一个字节;如果是文字字符串,每一个汉字所占空间为两个字节。

9.3 结构体变量的数据打印

打印结构体中的数据,就需要访问到结构体的数据并取出来。这时,我们就要用到操作符中没有介绍的两个:点操作符.和箭头操作符->(结构体成员访问操作符)

#include<stdio.h>struct Student
{char name[20];char sex[10];short age;int number;
};int main()
{struct Student st1 = { "张三","男",20,20211024 };struct Student st2 = { "李四","男",18,20211025 };struct Student* list = &st1;//list为指针变量,类型是struct Student*printf("%s %s %d %d\n", st1.name, st1.sex, st1.age, st1.number);printf("%s %s %d %d\n", (*list).name, (*list).sex, (*list).age, (*list).number);printf("%s %s %d %d\n", list->name, list->sex, list->age, list->number);return 0;
}

说明:

打印结构体变量中的数据使用的就是点操作符以及箭头操作符。

(1)点操作符:结构体变量.结构体成员,使用解引用符号时必须要有括号

(2)箭头操作符:结构体指针变量->结构体成员

(3)以上用法均为规定用法。

结构体基础我们就介绍到这里,点到为止。后期会有更加详细的介绍,值得一提的是,结构体的用处非常之大,比如后面会学习的数据结构,其中就使用了大量的结构体。

10、结语

到这里C语言基础篇就宣布完结了,掌握了基础后,相信对C语言有了初步的了解,希望在接下来的学习中再接再厉。

#C语言-基础篇(Ⅳ)相关推荐

  1. Go语言基础篇 (一)初识Golang

    文章目录 发展历程 语言特点 适用人群 我为什么学习Golang 注意事项 系列文章分类 下期预告 参考链接 发展历程 Go语言是在2007年由Robert Griesemer.Ken Thompso ...

  2. C语言基础篇02:单链表实现学生成绩管理系统

    单链表实现学生成绩管理系统 前言 需求分析 详细设计 增加成绩信息 删除成绩信息 修改成绩信息 查询学生信息和浏览学生信息 总结 前言 上篇已经讲过单链表的基本实现,这篇将以一个简单的管理系统入手. ...

  3. C++语言基础篇学习总结及心得体会(难度极低)

    关于C++的语言部分(信息学奥赛一本通),我自己总结了一部分的知识. 因为过于基础,第一部分源代码的简介和使用我就不讲了. 我直接从第二章顺序结构程序设计开始讲.首先,我认为在这一章内只要理解一个因果 ...

  4. 每日一题(C语言基础篇)2

    题目描述:使用C语言将一个整型数字转换成字符串并倒序打印,例如:123转换成字符串321,-1234转换成字符串-4321. 代码实现: #include <stdio.h> #inclu ...

  5. C语言基础篇(零)gcc编译和预处理

    导航: 1. gcc编译 2. 预处理 ----->x<------------->x<--------------->x<--------------->x ...

  6. C语言基础篇,什么是封装,附代码!

    封装就是把数据和函数打包到一个类里面,其实大部分C语言编程者都已近接触过了. C 标准库中的 fopen(), fclose(), fread(), fwrite()等函数的操作对象就是 FILE.数 ...

  7. 05、老徐教你学C语言基础篇4——C语言之门(运算篇)

    有了数据,下来比较重要的就是运算了,就像我们小时候学的--人是社会的人,离开了社会就不能称之为人,数据也是一样的,单个的数据没有什么意义,只有参与运算的数据才能绽放属于他自己的光和热! 一.本章目标 ...

  8. 02、老徐教你学C语言基础篇2——C语言摩拳擦掌齐上阵(环境篇)——理论

    工欲善其事必先利其器 君欲学语言必先熟其境 C语言的语法.理论前面我们有了一定的了解,但是看书永远看不出一个程序员,再好的武功秘籍没经过10数年的敲打也不可能成为绝世高手,段誉毕竟是少数,我们还是老老 ...

  9. C语言基础篇-01-CMD指令

    作者介绍 张伟伟,男,西安工程大学电子信息学院,2019级硕士研究生,张宏伟人工智能课题组. 微信公众号:可随时查阅,搜索-张二牛的笔记,内容会分类上传. 研究方向:机器视觉与人工智能. 电子邮件:z ...

最新文章

  1. 精选机器学习开源项目Top10
  2. Xcode 编译有错误却没有任何可查看错误的issues
  3. app获取个人信息是否合法_APP隐私合规介绍和实施方案
  4. 用wget做站点镜像
  5. Codeforces Round #494 (Div. 3)【未完结】
  6. .NET静态代码织入——肉夹馍(Rougamo)
  7. mysql事务基础+基于innodb的行锁+间隙锁+如何锁定行
  8. 工作流实战_21_flowable 加签 任务向前加签 向后加签
  9. 为什么工程师要掌握FPGA开发知识?
  10. ————————C语言中快速排序方法——————————————
  11. squid 日志清理
  12. 《Flask 入门教程》第 3 章:模板
  13. Java的“ for each”循环如何工作?
  14. python百度文库免券下载
  15. 北理珠计算机专业在广东排第几,独立学院排名第一!北理珠这项工作获省教育厅肯定...
  16. pcr计算码率的过程
  17. java则么实现md5解密_java的md5解密
  18. Gas Station (环形加油站)
  19. 用krpano 分解下载全景图
  20. oracle实时异地同步,异地Oracle数据库数据同步

热门文章

  1. Python金融系列第八篇:Fama-French 多因子模型
  2. 微信小程序中,使用正则表达式,快速验证是否是数字(附正则表)
  3. openvz使用手册
  4. English语法_5大句型
  5. 人际关系-《吸引力是这样炼成的》书中的精髓:掌握7个人际交往技能,收获丰富多彩的人生。
  6. 3、使用angular cli初始化一个新项目
  7. Android Q读写共享目录媒体文件
  8. arcgis更改图层坐标系_arcgis里怎么转换坐标系
  9. Git安装及基本操作
  10. pandas使用merge函数将多个dataframe数据连接起来、设置how参数为outer指定全连接(outer join)、left_on参数指定左侧dataframe的连接字段