C语言设计结构体说课.ppt

  1. 1、本文档共30页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言程序设计;引言;复杂数据的表示;结构体;主要内容;结构体类型的概念 结构体是由不同类型的数据所组成的集合体。 结构体类型的的定义:注意类型定义后面的分号 struct 结构体名 { 数据类型 成员名1; 数据类型 成员名2; … 数据类型 成员名n; }; ;示例一: struct Student //学生信息结构体 { char num[10]; //学号 char name[10]; //姓名 char sex; //性别 int age; //年龄 char addr[30]; //住址 };;结构体类型示例;定义结构体变量;定义结构体变量;定义结构体变量;使用typedef重新命名结构体类型名后,结构体变量的定义格式与普通变量相同: 示例一:Date date; 示例二:Student zhang_san; 示例三:Student students[8];//学生结构体数组 ;定义结构体变量的同时可以直接设置初值。 typedef struct {int year, month, day;} Date; typedef struct //学生信息结构体 { char num[10]; //学号 char name[10]; //姓名 char sex; //性别 int age; //年龄 Date birthday; //出生年月 } Student ; Student monitor={, ”张明”, ‘M’, 19}; Student monitor={, ”张明”, ‘M’, 19,{1994,1,10}};;与数组不同,结构体量可直接赋值,拷贝过程为逐成员一一复制 如果成员是基本类型,按值复制 如果成员是数组,数组内容会被复制 如果成员是指针,复制指针值(地址),导致两个结构体变量的成员指向同一块内存 示例: Date date = { 2014, 12, 26 }; Date today = date; ;结构体变量成员的访问 使用点号操作符“.”访问结构体变量的某个特定成员 示例一:Date date; date.year = 2014; date.month = 12; date.day = 26; 嵌套结构体成员的访问 可以连续使用点号逐层访问 示例二: Student monitor; monitor. birthday.year=1995; 复杂结构体成员的访问 严格按照语法规范进行 示例三: Student students[10]; students[0]. birthday.year=1995;;结构体指针变量;结构体指针变量;示例1:编写程序,接受用户输入的两个复数,按照 a + bi 格式打印它们之和,精度精确到小数点后二位;7.2 结构体与函数;结构体类型作为函数返回值;typedef struct{ int x; int y; }point_t; point_t random_point(){ point_t pt; pt.x=rand()%100; pt.y=rand()%100; return pt; } int main(){ point_t pt1,pt2; pt1 = random_point(); pt2 = random_point(); printf(pt1: (%d,%d)\n, pt1.x, pt1.y); printf(pt2: (%d,%d)\n, pt2.x, pt2.y); return 0; };结构体类型作为函数形式参数;结构体类型作为函数形式参数;示例;#includestdio.h typedef struct { char id[10]; char name[20]; int score; }Student; void sort(Student sts[], int n ) { int i,j; for(i=0; in-1; i++) { for(j=i+1; jn; j++) { if( sts[j].score sts[i].score) { Student st=sts[i]; sts[i]=sts[j]; sts[j]=st; } } } };int main

文档评论(0)

舞林宝贝 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档