下载此文档

第9章 结构体和共用体.doc


文档分类:IT计算机 | 页数:约30页 举报非法文档有奖
1/30
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/30 下载此文档
文档列表 文档介绍
第9章结构体和共用体
结构体
【学****目标】
掌握结构体的类型定义方法
掌握定义的结构体类型变量和指针变量的引用方法
掌握结构体类型数组的定义及数组元素的引用
实例45 结构体类型变量、指针变量的定义与引用——我的个人信息
【实例任务】
定义一个结构体类型,然后定义两个自定义结构体类型的变量,通过引用这两个变量输出个人信息。程序的运行结果如图9-1所示。
图9-1 程序运行结果
【程序代码】
#include ""
main()
{ typedef struct
{int num;
char *name;
char sex;
float score;
}STU;
STU girl1, girl2,*girl3;
/*定义结构体类型*/
=102; ="lihong";
printf("请输入性别和成绩:");
scanf("%c%f",&,&);
girl2=girl1;
/*可以为结构体类型的变量整体赋值*/
girl3=&girl1;
/*可以让结构体类型的变量指向结构体类型的变量*/
printf("输出我的学号、姓名、性别、成绩的个人信息为:\n");
printf("%10d%10s %c %.2f",,,,);
printf("\n通过指针变量输出我的学号、姓名、性别、成绩的个人信息为:\n");
printf("%10d%10s %c %.2f",girl3->num,girl3->name,(*girl3).sex,(*girl3).score);
getch(); }
【相关知识】
结构体类型的定义
前面学过众多的类型定义符,它们的共同特点定义的变量在内存中的空间大小都是固定的。现实生活和工作中,这种单一表现有很大的局限性,结构体类型是在应用原有类型的基础上,用户构造的一种类型,其成员丰富,引用时可以整体引用。以前学过的数组在定义后所有数组元素都属同一类型,而本章所学结构体各个成员可以是不同类型。它的定义形式为:
struct 结构体标识符
{ 类型名成员变量名1;
类型名成员变量名2;
………
类型名成员变量名n;}
这里,struct是定义结构体类型的关键字,结构体标识符要求是合法的C语言标识符。实例中,定义了一个记录个人信息的结构体,有num、name、sex、score这4个成员。
结构体类型的变量和指针变量的定义
结构体类型的变量定义方法有多种。可以在定义结构体的同时定义结构体类型的变量;也可以先定义结构体类型,然后再定义相应的变量;也可以通过typedef关键字先为定义的结构体类型命个新名字,再用新名字定义结构类型的变量。
对于结构体类型的变量,定义时在内存空间中为其分配存储空间,分配时按先后顺序连续分配,所占空间总的大小为所有成员所占空间大小的和值。
实例中,是在定义的同时,为结构体类型命个新名字STU,然后用新名字直接定义结构体类型的变量和指针变量,这样多次定义时比较简洁。
struct stu
{int num;
char *name;
char sex;
float score;
}s,*p;
以上程序段是在定义结构体类型的同时定义结构体类型的变量
struct stu
{int num;
char *name;
char sex;
float score; };
struct stu s,*p;
以上程序段是先定义好结构体类型,然后再单成立一条语句定义结构体类型的变量。
struct stu
{int num;
char *name;
struct date
{ int year;
int month;
int day;}birthday;
char sex;
float score;
}s,*p;
以上程序段是结构体类型的嵌套定义,引用时分层引用,不可越层。
struct stu
{ int num;
char *name;
char sex;
float score;
}s={101,"lihong",'F',},*p;
以上程序段是在定义结构体类型变量的同时对变量进行了初始化。
结构体类型定义时,可以用关键字typedef为定义的结构体类型变量新命一个名字,然后可以用这个新名字来定义结构类型的变量。如实例中的如下定义形式
typedef struct
{int

第9章 结构体和共用体 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数30
  • 收藏数0 收藏
  • 顶次数0
  • 上传人s0012230
  • 文件大小629 KB
  • 时间2018-07-08