专题10 结构体和共用体的概念及应用.pptVIP

  • 5
  • 0
  • 约6.35千字
  • 约 27页
  • 2019-12-23 发布于湖北
  • 举报

专题10 结构体和共用体的概念及应用.ppt

* 专题十 结构体和共用体的概念及应用 一、 结构体类型 1、如何定义一个结构体类型 为的是将不同类型的数据组合成一个有机的整体,以便引用。 结构体类型说明的一般形式: struct 结构体标识符名 { 类型名1 结构成员名表1; 类型名2 结构成员名表2; …………………………… 类型名n 结构成员名表n; }; //分号不能少 说明: struct是关键字,是结构体类型的标志 结构体标识名是可选项,在说明中可以不出现,称为无名结构类型 结构体说明要以分号(;)结尾 可以为简单数据类型,也可以是某种结构类型,也就是在定义不同类型的变量 如关于日期的结构体类型: struct date { int year; int month, day; } ; 如关于学生档案的结构体类型: struct student { char name[12];//姓名 char sex; //性别 struct date birthday;//出生年月 float sc[4]; //四门课程成绩 } ; struct student { char name[12]; char sex; struct { int year; int month, day; } birthday; float sc[4]; } ; 结构体类型并不占用内存,只有相应的变量才占用内存 2、结构体类型的变量、数组和指针变量的定义 1)紧跟在结构体类型说明之后进行定义 struct student { char name[12]; char sex; int age; float sc[4]; }std,pers[3],*pstd; //std为结构体变量,pers[3]为具有3个元素的结构体数组。 // pstd是基类型为结构体类型的指针变量,可以指向一个具有struct student类型的存储单元。 对于这种结构的变量在内存中所占用的字节数多少?,其各成员在内存中按说明时的顺序依次排列 2)在说明一个无名结构体类型的同时,必须直接紧跟随后进行定义变量 struct //省去了结构体标识名 { char name[12]; char sex; int age; float sc[4]; }std,pers[3],*pstd; 3)先说明结构体类型,再单独进行变量定义 struct student { char name[12]; char sex; int age; float sc[4]; } struct student std,pers[3],*pstd; 两者共同来说明不同的结构体变量,缺一不可 4)使用typedef说明一个结构体类型,再用新类型名来定义变量(常用) typedef struct { char name[12]; char sex; struct date birthday; float sc[4]; }STREC; // STREC是一个具体的结构体类型名,可以用它来定义相应的变量,就如int、char一样,用它来定义变量时,就不能用struct STREC std,pers[3],*pstd; 例 设有如下说明[C] typedef??struct??ST { ?? long a; ?? int??b; ?? char??c[2]; } NEW; 则下面叙述中正确的是????????????? A)以上的说明形式非法 B)ST是一个结构体类型 C)NEW是一个结构体类型 D)NEW是一个结构体变量 3、给结构体变量、数组赋初值 struct { char name[12]; char sex; int age; float sc[4]; }std={“Li Ming”,’M’,18,88,76,85.5,90}; //所赋初值顺序放在一对花括号中,按照顺序依次赋初值 同样也可以给一个结构数组赋值,这时数组中的每个元素的类型为一个结构体类型 例 有如下说明 [A] typedef struct a {int n; char c; double x;}STD; 则以下选项中,能正确定义结构体数组并赋初值的语句是 A) STD tt[2]={{1,A,62},{2, B,75}}; B) S

文档评论(0)

1亿VIP精品文档

相关文档