第7篇 用户定制数据类型.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
结构:同一个数据项的若干成分构成的一个整体。 例如:学生档案,每个学生有学号、姓名、性别、出生地、出生年月、学业成绩等。 ●结构的定义 struct student { long int num; char name[20]; float score; }; 定义一个结构类型: struct student ● 结构变量的定义 1、先定义结构类型,再定义变量 struct student { long int num; char name[20]; float score; }; struct student stu1, stu2; 2、定义结构类型的同时定义变量 struct student { long int num; char name[20]; float score; }stu1, stu2; ●自定义类型 用 typedef 定义新的类型名代替已有的类型 旧 新 例1、typedef int INTEGER; int i, j; ==== INTEGER i, j; 例2、 typedef int* POINT; int* p1; ==== POINT p1; 定义方法 (1) 定义变量        int i (2)变量名-新类型名   int INTEGER (3)加上typedef  typedef  int INTEGER (4) 用新类型名定义变量 INTEGER i; 例 int num[10] int NUM[10] typedef int NUM[10] NUM a === int a[10] 1、先定义结构类型,再定义变量 struct student { long int num; char name[20]; float score; }; struct student stu1, stu2; 例 typedef struct STU{ char name[10]; char stuno[10]; int age; int score; }ElemType; ElemType elem; ● 结构变量的初始化 static struct student stu2={200012, “Li”, 94}; struct student { long num; char name[20]; float score; } stu1={200011, Zhang, 85}; ● 结构变量的使用 1、结构类型变量的整体引用 (1) 不能整体输入输出,但相同类型的变量可以互相赋值 printf(“%ld%s%f”, stu1); 非法(参见P250) stu2=stu1; 合法 (2) 可以引用结构体变量的地址 printf(%x, stu1); 输出stu1的首地址 2、结构变量中分量的引用 struct student { long int num; char name[20]; float score; }stu1, stu2; (2) 结构变量中的分量可以依据它的类型进行各种运算 x = stu1.score; strcpy(stu1.name, “Wang”); (3) 可以引用结构变量中的分量的地址 scanf(%ld, stu1.num); ●嵌套结构体类型(参见P250) ●位 段(一种特殊形式的结构体类型) 例7.4 例7.5 ※在一个结构体中可以混合使用位段和通常的结构体成。 ※位段的引用 对位段的引用方法与引用结构体变量中的成员相同, 即用以下形式: x.a, x.b, x.c, x.d 允许对位段赋值,例如: x.a=2; x.b=1; x.c=7; x.d=0; 要注意每一个位段能存储的最大值。这个不是定义位时 位段占用的比特数,而是它们所能表示的最大数。 例如x.c占三位,最大值为7,如果赋以8就会出现溢出, 从而使x.c只取8的二进制

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档