结构体类型的声明

结构的基础知识

     结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。在实际生活中,实际上有很多的复杂对象,他要用各种数据来描述,例如,描述一个人,需要描述他的姓名、年龄、性别、电话号码、身高、体重等等,此时定义的单一的变量类型是不足以描述它的,这个时候就有了结构体,我们可以把结构体当作是一组用于描述同一对象的不同数据类型的集合,接下来我们将进一步理解。

结构的声明

语法结构:

示例:

//1、最常使用
struct peo
{char name[20];char tele[13];char sex[5];int hight;
};//注意这里的分号千万不要丢//2、直接在声明结构体时定义结构体变量
struct peo
{char name[20];char tele[13];char sex[5];int hight;
}p1,p2;
//p1和p2是用struct peo 这一结构体类型创建的结构体变量
//这样创建的结构体变量是全局变量,尽量不要这样创建

结构成员的类型

结构的成员可以是标量、数组、指针,甚至是其他结构体
//结构体成员也可以包含结构体
struct peo
{char name[20];char tele[13];char sex[5];int hight;
};struct stu
{struct peo p2;float score;};

结构体变量的定义及初始化

前面在结构体声明部分我们说过了定义结构体变量可以直接在声明之后进行,接下来我们来看另一种情况,在函数内部定义结构体变量,我们把在定义结构体变量时给其成员赋值的过程称为结构体的初始化。

struct peo
{char name[20];char tele[13];char sex[5];int hight;
};struct stu
{struct peo p2;float score;};int main()
{struct peo p1 = { "张三","13187652435","男",183 };//定义了结构体变量p1,同时进行了结构体初始化struct stu s = { {"李四","18927365436","女",164},65.8 };//当有嵌套的结构体时定义和初始化也类似return 0;
}

结构体成员访问

1、结构体变量访问结构体成员:用'.'操作符来访问

格式:结构体变量名.结构体成员名

如下例:

2、结构体指针访问指向变量的成员:用'->'操作符来访问

格式:结构体指针->结构体成员

如下例:

结构体传参

我们在结构体访问方式中的例子其实就涉及了结构体传参的两种方式,一种是直接传结构体,一种是传结构体的地址,那究竟哪一种方式更好一些呢?我们首选传地址(这里可以类比数组传参传首元素地址去理解)

原因:
      函数传参的时候,参数是需要压栈的。如果传递一个结构体对象的时候,结构体过大,参数压栈的的系统开销比较大,所以会导致性能的下降。
结论:
结构体传参的时候,最好传结构体的地址。
       至此其实C语言打地基阶段的所有学习内容都已经全部更新完毕了,这一系列囊括了C语言所有重点基础知识,个人认为如果仅仅针对于大学的期末考试,看到这里已经可以游刃有余了,但并不是说我们C语言的学习可以止步于此了,要实现今后对C语言的应用,还要进一步学习进阶课程,同样,我会持续更新进阶课程的内容,当然,怎么检测我们初级阶段的学习成果呢?相关的作业练习是必不可少的,之后我将会更新我的作业合集,大家也可以参考用于巩固,我们进阶课程再见吧!

【结构体:编程小白与C语言正式建交的第六天(打地基阶段6)】相关推荐

  1. FX5U 结构体编程

    三菱FX5U的结构体编程和博途的用户自定义类型有点像,不多说直接上图: 1.标签下自定义结构体 2.结构体里嵌套数组类型元素. 3.实例化结构体  4.结构体编程

  2. codeup 结构体输入输出问题 B: C语言11.2

    codeup结构体输入输出 问题 B: C语言11.2 题目描述 定义一个结构体student,存储学生的学号.名字.性别和年龄,读入每个学生的所有信息,保存在结构体中,并输出.结构体student的 ...

  3. c语言 结构体_颖儿教你学C语言结构体,全面讲解,让程序小白玩转结构体编程...

    C语言结构体详细教学开始 前面的教程中我们讲解了数组(Array),它是一组具有相同类型的数据的集合.但在实际的编程过程中,我们往往还需要一组类型不同的数据,例如对于学生信息登记表,姓名为字符串,学号 ...

  4. c 语言 结构体 编程,C语言:结构体的编程问题(很简单)

    C语言:结构体的编程问题(很简单) 答案:2  信息版本:手机版 解决时间 2020-07-25 02:18 已解决 2020-07-24 02:27 先定义一个结构体Student,它包含四个成员: ...

  5. c++ 结构体初始化_单片机C语言 - 基于结构体的面向对象编程技巧

    单片机C语言 - 基于结构体的面向对象编程技巧 一.面向对象 面向对象是软件开发方法,是相对于面向过程来讲的.通过把数据与方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式 ...

  6. c语言结构体编程,[编程] C语言的结构体详解

    结构体 struct 结构体名{}变量名; 结构体变量: struct person{ char *name; int age; float score; } student; 成员的获取和赋值 // ...

  7. c语言求学生平均分 总分结构体,c语言 已知学生三门课程基本信息如下。请使用结构体编程,计算学生三门课程平均成绩后,列表输出学生的姓名、数学、英语、计算机、平均分信息,并按平均分排序。(...

    满意答案 dante9573 2013.03.07 采纳率:42%    等级:12 已帮助:6621人 #include #define FORMAT "学号:%d\t姓名:%s\t语文: ...

  8. linux中c语言结构体详解,Linux C语言结构体-学习笔记

    Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习. 预处理程序. 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 ...

  9. 结构体自定义指针函数c语言,C语言结构体指针在函数调用中的使用

    接触嵌入式编程已经有一段时间了,平时的编程中会经常遇到结构体,但是就直接拿来用了,没有注意过细节,结果遇到问题就纠结了.趁这个机会,研究了一下C语言的结构体和结构体指针,顺便总结一下! 注:关于结构体 ...

最新文章

  1. adobe aem_AEM中的单元测试(大声思考)
  2. 集成学习-Boosting集成学习算法GBDT
  3. LintCode 207. 区间求和 II(线段树)
  4. React Native :加载新闻列表
  5. SpringBoot : Consider defining a bean of type xxx in your configuration.
  6. AjaxControlToolkit工具控件之Accordion错误解决方法
  7. NB-IoT 的“前世今生”
  8. 华为路由器防火墙配置命令总结(上)
  9. ubuntu下使用锐捷客户端连接校园网-郑州大学Ruijieclient for Linux下载及配置指导...
  10. 宠物爱心驿站/宠物救助网站/宠物领养网站
  11. 用计算机问你叫什么名字,计算器功能有哪些呢
  12. 典型无线复习资料---有这不怕挂科
  13. 【学习笔记】高光谱基础知识
  14. PHP 命令行模式实战之cli+mysql 模拟队列批量发送邮件(在Linux环境下PHP 异步执行脚本发送事件通知消息实际案例)...
  15. 一、安装Centos
  16. 微信小程序——分割线
  17. java微信摇一摇_微信摇一摇功能实现
  18. DD-wrt无线参数详解
  19. 客厅风水中钟表的摆设要注意什么?
  20. 基于龙芯+国产FPGA 的VPX以太网交换板设计(一)

热门文章

  1. linux进程内存结构体,Linux下网络编程(3)——进程间通信(IPC),共享内存,传递结构体数据...
  2. 格力终于要掌握核“芯”科技了?
  3. extjs 方法执行顺序_透析Extjs的Ext.js源码(二)能在定义时就能执行的方法的写法 function(){...}...
  4. STM32网络数据传输,实际项目中实现,以及网络卡死问题的解决
  5. Head First Design pattern Observer
  6. [自学CV]000-计算机视觉学习路线
  7. ft232电路ttl_基于Arduino使用FT232 USB转TTL串口模块
  8. 浩辰CAD机械2011ACAD版破解(含注册机)下载!
  9. C语言候老师,C语言的信息化教学
  10. JS - n次方计算