第11章结构体与链表.pptVIP

  • 2
  • 0
  • 约7.49千字
  • 约 46页
  • 2019-09-06 发布于广东
  • 举报
1.链表结构 (1)头指针变量head──指向链表的首结点。 (2)每个结点由2个域组成: 1)数据域──存储结点本身的信息。 2)指针域──指向后继结点的指针。 (3)尾结点的指针域置为“NULL(空)”,作为链表结束的标志 Qian Sun Li Zhou Wu Wang Head 7 13 1 43 25 37 链表结构的定义 struct student {char name[10]; struct student *next; }; next为student类型指针变量,指向下一个结点的指针域。 结点的变量或指针变量的定义: struct student node,*head; node可以存放一个学生结点 指针head可以存放学生结点的地址。 动态分配存储空间库函数 1.void *malloc(unsigned int size); malloc在内存的动态存储区中分配一个size长度的连续存储空间。 例如: int *p; p=(int *)malloc(8); p指示系统分配的4个整型存储单元的起始地址 也可看成包含4个数组元素的p数组:p[0],p[1],p[2],p[3] 第10章 结构体与共用体 11.1~2 结构体类型的定义与变量说明 11.1.1结构体类型的定义 结构体是具有不同类型的数据的有序集合 结构体定义: struct 结构体类型名 { 类型标识符 成员名1; 类型标识符 成员名2; …… 类型标识符 成员名n; }; struct: 定义结构体类型的关键字; 域: 结构体类型定义中的每1个成员; 成员名的命名规则和变量相同,同一结构体的同层成员不可同名。 例:定义结构体类型student struct student {int num; char name[20]; char sex; int age; float score; char addr[30]; }; num name sex age score addr 101 WGJ M 28 88.5 CS struct student应作为一个 整体对待,“;”号不能少! 11.1.2 定义结构体类型变量的定义 一、先定义结构体类型再定义变量名 形式: struct 结构体名 结构体变量名表 例:在前面已定义结构体类型struct student 则可定义:struct student stu1,stu2; stu1,stu2即为struct student类型的变量 二、在定义类型的同时 定义变量 一般形式为: struct 结构体名 { 成员表列 }变量名表列; struct student {int num; char name[20]; char sex; int age; float score; char addr[30]; }student1,student2; 三、直接定义结构类型 的变量 一般形式为: struct { 成员表列 }变量名表列; * 不出现结构体名 struct {int num; char name[20]; char sex; int age; float score; char addr[30]; }student1,student2; 10.1.3 结构体类型的嵌套 定义:结构体成员又是一个结构体变量 例: struct date { int month; int day; int year;}; struct student { char name[20]; char sex; int age; struct date birthday; }stu1,stu2; 嵌套结构体变量的引用:点标记法,但只能对最低成员进行赋值或存取、运算。 例:stu1.age=20; stu1.dirthday.month=7; stu1.dirthday.day=31; [思考以下的引用] printf(“%d%d%d”,stu1.birthday);(?) stu1.birthday=12, 31, 1988 ; (?)

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档