阅读须知:

结构体部分内容,涉及结构体定义,结构体变量,结构体指针,结构体数组,更多内容敬请关注。

结构体是由若干个"成员"组成的,每一个成员要有成员名称和类型,成员可以是基本数据类型或者一个结构体。一旦定义结构体类型,使用它的方式和其他类型一样,可以声明这个结构体的对象、指针和数组。下面我们先来定义一个描述歌曲的结构体:

上面的song就是一个机构体,它包含有4个成员,成员分别有不同的数据类型,通过上面的例子我们能总结出定义结构的一般格式:struct 结构体名称 {成员列表};

struct是一个C语言的关键字,是定义结构体所必须的。[结构体名称]就是上面的song,有时候可以省略。成员列表必须用花括号{}括起来,最后是分号。

想要使用结构体,就必须先声明结构体变量,如果你想说在上个练习中的song是变量的话,那你就大错特错了。song是我们定义的结构体名称,就想int一样,只不过song是我们定义的,而int是C语言定义好的。我们可以使用2种方式来声明结构体变量:

定义好结构体后再声明变量

在定义机构体时就声明变量

当我们使用这种方式声明结构体变量时,结构体名称song可以省略不写。 如果我们想使用结构体song1中的成员时:song1.title或者song1->title (->:指针只想运算符)

小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:870963251!适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程

当我们有很多个结构体变量时,我们可以使用结构体数组,比如我们有3首歌的时候:

或者

结构体指针当然我们也可以先定义结构体数组,然后再对它们进行赋值。

结构体指针顾名思义就是指向结构体的指针,具体的这个指针会指向该结构体的某个变量。声明一个结构体指针变量的形式:

struct 结构名 *结构指针变量名

比如我们声明一个指向song结构体的指针变量:

struct song *ps;struct song song1, song2;

给指针ps赋值则是:

ps = &song1;

当然我们也可以在声明指针时就给ps赋值。我们可以通过指针来使用song1中的成员:(*ps).title或者ps->title

注意

指针ps只能指向结构体变量song1或song2,但是不能指向结构体名song

使用"."和"->"时的不同方式。

结构体指针不但能指向结构体变量,还可以指向结构体数组,比如上个练习中我们使用的songs数组:ps = songs,这代表指针ps指向songs数组的首地址

C语言什么是结构体?初步学习C语言结构体三部曲相关推荐

  1. 学习c语言必须要会函数吗,学习C语言必须要知道的那些事儿

    学习好C语言,首先我们要知道我们应该学习哪些内容,要系统的学习,然后才可以针对性的,有计划,有步骤的学习,不能今天学习这个,明天学习那个,杂乱无章,这样知识也行不行体系,很难学好,下面为小伙伴们梳理一 ...

  2. 电脑基础c语言,C语言经验: 如何从零基础学习C语言?

    C语言是面向过程的,而C ++是面向对象的C和C ++之间的区别: C是一种结构化语言,其重点是算法和数据结构. 在C程序设计中,首先要考虑的是如何通过过程来处理输入(或环境条件)以获得输出(或实现过 ...

  3. python语言自学-为什么建议大家都学习Python语言?原因在这

    有很多人在问小编,为什么说学人工智能一定要学Python?运行速度慢不好之类的,今天就让小编谈谈自己对于Python的感受. 一.先来说说Python的前景 随着"大数据"&quo ...

  4. r语言pls分析_零基础学习R语言分析GEO

    关于零基础用R语言分析GEO的视频已更新完,发布在B站,有兴趣的小伙伴可以移驾到B站,我的B站号:I_am_Becky 之前录制过一系列关于零代码分析GEO数据的,但是这样画出来的图太low了,所以学 ...

  5. 编程c语言零基础知识,零基础学习C语言都需要掌握哪些基础知识

    随着互联网的不断发展,越来越多的人都在学习互联网软件编程开发语言,而今天我们就一起来了解一下,零基础学习C语言都需要掌握哪些基础知识. 无论学习哪门语言先应该了解一下自己所学语言的背景,也可以说它的发 ...

  6. 学c语言要掌握的英语单词,学习C语言需要理解的英语单词

    学习C语言需要理解的英语单词,欢迎补充 Data Structures 基本数据结构 Dictionaries 字典 Priority Queues 堆 Graph Data Structures 图 ...

  7. 研究c语言必须的软件,为什么必须学习C语言

    原标题:为什么必须学习C语言 在我们刚刚接触编程的时候,我们总想要找到一种编程语言,是能够面向众多工作方向的万能语言,而且这种语言最好能简单好学,还要能方便找工作.可是理想是丰满的,现实是骨感的,没有 ...

  8. 多智能体强化学习:多智能体系统

    1 多智能体系统 多智能体系统 (Multi-Agent System,缩写MAS) 中包含 m 个智能体,智能体共享环境,智能体之间会相互影响. 一个智能体的动作会改变环境状态,从而影响其余所有智能 ...

  9. c语言php都用什么软件,学习c语言用什么软件

    如果你使用的操作系统是WINDOWS,那么可以使用Microsoft Visual Studio C++:如果使用的是Linux系统,那么C语言的编译器是gcc:如果使用的是UNIX操作系统,那么C语 ...

  10. python语言的核心理念是_学习Python语言四大核心优势

    1.行业前景好 全球前四大流行语言之一,根据TIOBE最新排名 ,Python已超越C#,与Java,C,C++一起成为全球前4大最流行语言.且,国内目前百度指数搜索量已经超越Java,与C++,即将 ...

最新文章

  1. c++重载(以运算符重载为主)
  2. sql count用法_SQL常用知识点解析
  3. php 二维数组值相加,php二维数组指定某元素后面的值是和前面的值相加起来的...
  4. [html] 你知道什么是粘性布局吗?
  5. Linux环境安装zookeeper3.5.5后,总是启动不了
  6. hibernate之一对一
  7. [HNOI2012]三角形覆盖问题
  8. C#在Web项目中关闭Excel进程的方法
  9. 正则表达式匹配NOD用户名与密码
  10. 微信小程序用什么工具开发(微信小程序开发工具介绍)
  11. c语言 long int最大数,long整型的最大值跟处理器位数有关
  12. 单片机、ARM、DSP、FPGA区别与应用领域
  13. Springboot微信点餐系统——01项目设计以及初步环境搭建
  14. 如何保存卡住的wps_我告诉你wps卡住了怎么办
  15. 【Android】技术调研:用代码模拟屏幕点击、触摸事件
  16. cnn 句向量_快速理解句向量模型,深度好文,一定要看
  17. 「Adobe国际认证」平面设计师的,终极排版术语综合指南,都包含了哪些设计要点?
  18. 计算机word做课程表实验报告,《用Word制作课程表》“学讲方式”案例分析
  19. migrate oracle dell,How to Migrate Oracle to PostgreSQL
  20. 抖音音乐怎么下载 mp3格式转换器如何使用

热门文章

  1. Android使用弹出式对话框
  2. Python使用matplotlib可视化模拟家庭支出情况雷达图
  3. Layui 数据表格复杂表头
  4. PHP substr(),mb_substr(),mb_strcut()比较
  5. oracle最难的多表查询,Oracle多表的复杂查询
  6. java 数学公式解析_JAVA 文本表达式解析成数学公式,计算出结果
  7. 全网首发:gpg: gpg-agent 在此次会话中无法使用的解决办法
  8. 制作CDKEY:CDKEY不宜包含生效时间
  9. 终于把Android Studio用起来了,及体验
  10. UOS LINUX的开发测试,从来没有编译过什么应用?