lesson 10(c语言结构体).ppt
文本预览下载声明
例: 描述一个学生的姓名、学号、性别、年龄。 每个学生都有这样的属性,它们构成一个描述学生具体情况的一个整体。而每个属性又是一个基本的类型,本例中可分别用字符数组、长整型、字符型、和整型来描述。 定义结构体类型,描述下列数据 struct student { int no; /*学号*/ char name[10]; /*姓名*/ char sex; /*性别*/ int age; /*年龄*/ float score[10]; /*成绩*/ }; 例:定义结构体变量stu1: struct student stu1; stu1.age=20; scanf( %f, stu1.score); stu1.age 表示引用结构体变量stu1中的age成员,因该成员的类型为int型,所以可以对它执行任何int型变量可以执行的运算,也即像普通变量一样进行各种运算. 与结构体变量定义类似,只是结构体变量名为结构体数组,如: struct student stu[3]; 数组各元素在内存中连续存放 通过下面的示例说明结构体数组的使用方法[例9-3(P255)] 候选人得票的统计。设有三个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。 main() { int i, j; char leader_name[20]; for (i=1;i=10;i++) { scanf(%s,leader_name); for (j=0; j3; j++) if (strcmp (leader_name, leader[j].name)==0) leader[j].count++; } printf(\n); for (i=0;i3;i++) printf(%5s:%d\n,leader[i].name,leader[i].count); } 一个结构体变量的指针就是该变量所占据的内存段的起始地址。可以定义一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。 例如: struct student *pstu, stu; pstu=stu; 定义了一个指针变量pstu,并使指针指向结构体变量stu。 *pstu 表示指针pstu所指向的结构体变量(对象)stu,因而,其成员表示为(*pstu).name ,(*pstu).age。 main() { struct student { long num; char sex; float score; } stu_1,*p; p=stu_1; stu_1.num=200301; stu_1.sex=M; stu_1.score=89.5; printf(No.:%ld\nsex:%c\nscore:%f\n, stu_1.num, stu_1.sex, stu_1.score); printf(\nNo.:%ld\nsex:%c\nscore:%f\n, (*p).num,(*p).name,(*p).sex,(*p).score); printf(\nNo.:%ld\nsex:%c\nscore:%f\n, p-num,p-name,p-sex,p-.score); } 实例:用单链表结构来存放26个英文字母组成的线性表(a,b,c,…,z),请写出C语言程序。 将全局变量及函数提前说明: void build( ) //字母链表的生成,要一个个慢慢链入 void display() /*字母链表的输出*/ 单链表的插入: 单链表的删除: 作业: 新手特别容易忘记!! { int i; head=(struct node*) malloc(m); //m
显示全部