《c语言程序设计基础7构造数据类型

第7章 构造数据类型 第7章 构造数据类型 第7章 构造数据类型 7.1 构造数据类型概述 构造数据类型是C语言的一个特色,它是由一些简单数据类型构造而来的。 前面所学的数组就是其中最基本的的一种。数组是由若干类型相同的元素构成,在内存中占用一块连续的区域并且按顺序存放,例如学生成绩单、字符串、矩阵、数据表格等都可以用数组来表示,它们的元素具有同样的数据类型。 但在实际程序设计中,我们经常要把一些类型不同却又紧密联系的数据项组织在一起加以处理。 7.2 结构体与结构体类型变量的定义 7.2.1 结构体的定义 就本质而言,结构体是一种较为复杂的构造类型数据。它是由若干不同类型的数据项组成,构成结构体的各个数据项称为结构体成员也叫成员变量。在使用结构体类型前我们首先要对结构体内所包含信息作一说明,即定义结构体。 7.2.1 结构体的定义 struct为关键字,它表示一个结构体定义的开始,它与其后的结构体名一起代表某一特定的结构体类型。 结构体名是由用户自己定义的合法标识符。 成员表列由一对花括号括起来,其中每个成员都是该结构体的一个组成部分,并且必须列出其类型和变量的名称。结构体中各成员之间用分号隔开。 并且结构体定义也是用分号作为结束标志的,此处的分号不能省略,因为结构体定义在程序中就是一条说明语句。 7.2.1 结构体的定义 在定义结构体时,有以下几点说明: ①定义结构体类型只是说明该类结构体数据的组织形式,在程序编译时系统不会给结构体类型分配空间,只有定义了结构体变量,系统为该结构体变量分配空间。 7.2.1 结构体的定义 ②结构体成员可以是任何基本数据类型的变量,如int、char、float、double等,也可以是数组、指针类型的变量。这些成员变量可以是同一类型也可以是不同类型。 7.2.1 结构体的定义 ③结构体类型可以嵌套定义,即结构体成员也可以是结构体类型的变量。 7.2.2 结构体变量的定义 为了能够在程序中使用结构体类型,必须定义结构体类型的变量,定义结构体变量的方法主要有以下四种: ⑴先定义结构体类型,再定义结构体变量。 7.2.2 结构体变量的定义 ⑵在定义结构类型的同时定义结构体变量。 ⑶直接说明结构体变量。 7.2.2 结构体变量的定义 ⑷先使用typedef定义结构体类型,给结构体类型起别名,再用别名定义结构体变量。 这样在定义结构体变量的时候就可以既使用新的类型studentinfo来定义变量,又可以用struct student 来定义变量, 7.2.2 结构体变量的定义 按照结构体类型的组成,系统为定义的结构体变量分配内存单元。结构体变量的各个成员在内存中占用连续存储区域,结构体变量所占内存大小为结构体中每个成员所占用内存的长度之和。以上定义的结构体变量各成员所占内存单元如表所示(以VC环境为例): 7.3 结构体变量的使用及初始化 7.3.1 结构体变量的使用 结构体作为一种新的数据类型,在定义结构体变量之后,可以像基本类型变量一样赋值、运算,不同的是结构体变量不能整体引用,只能引用它的成员变量。 7.3.1.1 结构体成员变量使用的一般方式 结构体变量名.成员名 birthday.year、birthday.month、birthday.day 7.3.1 结构体变量的使用 可以将一个结构体变量赋值给另一个结构体变量。 进行赋值的结构体变量必须是同一类型的结构体变量。如果stu1已经赋值,则可以通过语句stu2=stu1将stu1的值赋给同类型的结构体变量stu2。 7.3.1 结构体变量的使用 7.3.1 结构体变量的使用 7.3.1.2 嵌套结构体中成员变量的使用 对于嵌套的结构体,如果要使用内部嵌套的结构体的成员变量,则需要连续的使用“.”运算符。 使用内部结构体的成员变量month用“stu1.date.month”的形式。 7.3.1 结构体变量的使用 7.3.2 结构体变量的初始化 对应结构体变量的定义形式,结构体变量初始化也有四种方法: 初始表中数据的个数应和成员项一致,各初值间用逗号隔开。按成员的先后顺序对应赋值,如果初值个数少,则将无初值对应的成员赋以0值。如果初值个数多,则编译出错。有嵌套结构的结构体类型,赋初值也一一对应。 7.4 结构体数组 7.4.1 结构体数组的定义 ⑴先定义结构体类型,再定义结构体数组。 ⑵在定义结构类型的同时说明结构体数组。 7.4.1 结构体数组的定义 ⑶直接说明结构体数组。 ⑷使用typedef定义结构体类型,再定义数组。 7.4.2 结构体数组的初始化 ⑴定义结构体类型时初始化结构体数组。 ⑵先定义结构体类型,然后定义结构体数组并初始化。 7.4.3 结构体数组的使用 ⑴可以把一个数组元素赋予另一

c语言构造数据类型有,《c语言程序设计基础7构造数据类型.ppt相关推荐

  1. 编程语言基础c语言第5版讲解,《程序设计基础》C语言基础知识讲解.ppt

    <<程序设计基础>C语言基础知识讲解.ppt>由会员分享,可在线阅读,更多相关<<程序设计基础>C语言基础知识讲解.ppt(54页珍藏版)>请在人人文库 ...

  2. c语言编程入门题库,级程序设计基础题库(c语言)(..更新).doc

    级程序设计基础题库(c语言)(..更新).doc 14级<程序设计基?础>题库100?道 1.总共抽10?道题,按题型:顺序(1道).分支(1道).单循环(2道).多循环(1道).数组(1 ...

  3. C语言程序设计:one two=3,程序设计基础(C语言)

    <程序设计基础(C语言)>由会员分享,可在线阅读,更多相关<程序设计基础(C语言)(102页珍藏版)>请在装配图网上搜索. 1.程序设计基础( C语言) 东北大学高级语言程序设 ...

  4. c语言程序设计科学出版社课后答案,程序设计基础C语言科学出版社.doc

    程序设计基础C语言科学出版社 程序设计基础--C语言 科学出版社 第六章--其他数据模型,教材习题答案. 东风冷雪 如果认为对自己不利那就离开. 你看了比没有看好,首先印象还是有的,如果自己不会你可能 ...

  5. c语言程序构造数据类型问题,C语言程序设计课程课件之第四章简单构造数据类型.ppt...

    C语言程序设计课程课件之第四章简单构造数据类型 第四章 简单构造数据类型 目录 4.1 一维数组 4.2 二维数组 4.3 字符数组 4.4 数组与指针 4.5 数组及指针作为函数参数 4.1 一维数 ...

  6. 对c语言和程序设计基础的体会,C语言程序设计基础与应用

    <C语言程序设计基础与应用(高等院校计算机教育系列教材)>由刘丽.朱俊东.张航编著,本书内容由浅入深.循序渐进,介绍C语言的基本语法知识和程序设计等内容,同时兼顾了全国计算机等级考试二级C ...

  7. 奥鹏20春季1903C语言,奥鹏南开大学 20秋学期(1709、1803、1809、1903、1909、2003、2009 )《程序设计基础(下)》在线作业...

    1.奥鹏南开大学2020年秋季学期在线作业 11192553751.有关析构函数的说法正确的是( ).A.析构函数可以有多个B.析构函数和构造函数一样可以有形参C.析构函数的功能是用来释放一个对象D. ...

  8. Franklin C-51语言程序设计基础

    Franklin C-51语言程序设计基础 1.1 Franklin C-51数据类型 Franklin C-51编译器支持下列数据类型: 数据类型 长度 值域 bit 1 字节 0 或 1 sign ...

  9. C语言作业 第二章 C语言的数据类型

    C语言作业 第二章 C语言的数据类型 2.1 引例 运行结果: Programming is fun 说明 (1)程序中第一行: /*Output:"Programming is fun.& ...

最新文章

  1. CodeVs 1059 汽车装油
  2. YBTOJ:运动积分(trie树)
  3. 如何使用NodeManager来控制WebLogic Server
  4. Hay Points
  5. InstanceBeginEditable dw中特有标识
  6. 机器学习、深度学习教程和代码资源帖
  7. 【渝粤教育】国家开放大学2018年春季 0631-21T动物常见病防治 参考试题
  8. 【老生谈算法】matlab特定人语音识别算法——语音识别算法
  9. 如何做好企业SWOT分析?用这个企业项目设计工具就足够了!
  10. 【数据分析师3级】 数据挖掘方法论
  11. 链表上手代码---表头插入
  12. 服务器淘汰cpu组装的电脑,从服务器淘汰下来的至强cpu还可以用多久
  13. 基于javaweb+jsp的户籍管理系统(JavaWeb JSP MySQL Servlet SSM SpringBoot Bootstrap)
  14. DELL笔记本电脑问win10系统插入耳机没有反应,不像之前有弹窗
  15. 史上最全Java面试题整理(附参考答案)
  16. VLog制作之素材拍摄和音乐选择
  17. iOS-Cannot find interface declaration for 'XX', superclass of 'XX'
  18. vue中实现图片丶文件上传
  19. 《CISP》(三)信息安全管理
  20. 4G远程智能巡检摄像机解决方案对比

热门文章

  1. CSS 实现背景半透明
  2. 【转】logback 常用配置详解(序)logback 简介
  3. ARP防治攻略————服务器防护
  4. Linux C语言调用C++动态链接库
  5. [转]Xvid参数详解
  6. HALCON示例程序check_fish_stick_dimension.hdev生鱼棒尺寸测量;基于形态学的像素级精度尺寸测量
  7. KUKA---US2电源的安全属性-------老款硬线连接实现的DRIVE安全STO SBC 、新款基于Safety over EtherCAT 网络帧实现的DRIVE安全STO SBC
  8. 学习笔记(21):Python网络编程并发编程-队列的使用
  9. vs+opencv编译出现内存问题
  10. excel 行高 上下留白_拒绝加班,工作中最常用的57个Excel小技巧来了!