- 3
- 0
- 约9.13千字
- 约 92页
- 2019-05-14 发布于广东
- 举报
C语言程序设计—提高篇 函数原型 void free(void *ptr); 功能 释放p所指的内存区,返回值无。 3.free函数 计算所给数据类型type的字节数,主要用来计算链表中结点所占动态存储空间的字节数。 4.sizeof运算符 1.指向某一结构的指针的说明方式 struct 结构名 *变量名; struct {成员说明表列}*变量名; 2.将一个函数的返回值说明为指向某结构的指针的说明方法 struct 结构名 *函数名(形参说明表列) { … … …//函数体; } struct student { char name [10]; char sex; int age; float score; char addr[20]; }x1; 结构指针变量举例 则p为结构指针变量,它可用来存放student型变量的地址 num name … addr p? x1 令p=x1; 则 p为x1的首地址 struct student ?p; (?p).name (?p).score … 或者用“ ? ”运算符, p? num, p?name, p ?score. 称?为指向运算符, “ ? ”优先级高于++, – –。 则:p ?num+1?(x1.num)++ ++p?num ?++(x1.num) 先使用x1.num, 再加1 先使x1.num加1,再用x1.num 访问x1的成员: 小结: 引用结构变量中的成员有三种方法: (2) 用指针变量 (?p).成员名 (?p).num (3) 用指向运算符?成员名 p ?num (1) 结构体变量名.成员名 x1.num 注意:指针变量p必须是结构指针型, 且有p=x1; 例:请指出下列程序的错误所在: struct person { char name[20]; int count; } x1={ZhongHua, 10}; main( ) { int *p; p=x1; printf (%s\n%d\n, (*p).name, (*p).count) } 错误的原因:p不是结构指针变量 可改为:struct person *p 3.指向结构体数组的指针 与指向数组的指针一样,可用指针指向结构体数组。 struct student{ int num; char name[20]; char sex; int age; }; void main ( ) { struct student stu[3]={{10101, Li Lin , M, ?}, {…}, {…}}; struct student ?p; p=stu; while (pstu+3) printf(… , p?num, p ?name, p ?sex, p ?age); } 内存结构如下: 注: p+1为指向下一个元素的首地址。 stu[0] p+1 p+2 ? (p) 4.结构与函数 用地址传送,函数中形参用指针变量,实参可用地址量或指针 例2: #include stdio.h struct person{ char name[20]; int count; }x[3]={{zhao, 4},{qian,3},{sun,6}}; void prt(struct person *pp); void main( ) { int i; for(i=0;i3;i++) prt(x[i]); } void prt (struct person *pp) { printf(%s, %d\n, pp-name, pp-count); } 运行结果: zhao, 4 qian, 3 sun, 6 2.9用typedef定义类型 typedef 的用途:用自定义名字为已有数据类型命名,为结构类型建立别名 typedef 的作用:简化结构变量的定义 1.建立别名 typedef 结构类型 别名 如:struct person { char name[20]; int age; char tel[15]; }; typedef struct person Person 2.结构变量定义 直接用别名作为类型标识 如:Person student; 说明: typedef 没有创造新数据类型 typedef 是定义类型,不能定义变量 typedef 与 define 不同 define是预编译时处理时简单字符置换 typedef是编译时处理为已有类型命名 2.10结构体数组应用 已学类型与数据的组织形式 1.基本类型:
您可能关注的文档
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(3).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(4).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(5).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(6).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(7).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(8).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(9).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第二章 物理层(10).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(1).ppt
- 苏州大学计算机科学与技术学院计算机通信与网络课件第六章 应用层(2).ppt
最近下载
- 工程施工机具安全管理制度.pptx
- 2020年《钢结构设计规范》GB50017..pdf VIP
- 2024-2025学年河南省南阳市唐河县九年级(上)期末英语试卷(含答案).pdf VIP
- 浙江省杭州2024-2025学年高一上学期1月期末考试政治试题(含答案).pdf VIP
- 膜分离工程超滤(UF)课件.pptx VIP
- 浙江省杭州学军中学2024-2025学年高一上学期期末考试历史试题(含答案).pdf VIP
- 河南省南阳市唐河县2022-2023学年九年级上学期期末英语试卷.pdf VIP
- 旋挖钻孔灌注桩施工方案.docx VIP
- 阿特拉斯•科普柯 冷冻式干燥机.pdf VIP
- 超滤膜技术介绍.pptx VIP
原创力文档

文档评论(0)