第十三章结构体与共用体
第十三章 结构体与共用体
13.1结构体类型变量的定义和引用 ■结构体类型的定义形式: struct结构体名 成员项表列 第十三章结构体与共用体
第十三章 结构体与共用体 13.1 结构体类型变量的定义和引用 ◼ 结构体类型的定义形式: struct 结构体名 { 成员项表列 };
131结构体类型变量的定义和引用 、结构体类型变量的定义 有三种形式定义结构体类型的变量 (1)先定义结构体类型,再定义结构体类型变量: struct stu/※定义学生结构体类型*/ char name20};/*学生姓名*/ char sex;/*性别*/ long num;/*学号*/ float score3];/*三科考试成绩* struct stu student1, student2;/*定义结构体类型变量*/ struct stu student3. student 用此结构体类型,可以定义更多的该结构体类型变量。 第十三章结构体与共用体
第十三章 结构体与共用体 ◼ 有三种形式定义结构体类型的变量 (1)先定义结构体类型,再定义结构体类型变量: struct stu / *定义学生结构体类型* / { char name[20]; / * 学生姓名* / char sex; / * 性别* / long num; / *学号* / float score[3]; / * 三科考试成绩* / }; struct stu student1,student2;/ * 定义结构体类型变量* / struct stu student3,student4; 用此结构体类型,可以定义更多的该结构体类型变量。 13.1 结构体类型变量的定义和引用 一、结构体类型变量的定义
131结构体类型变量的定义和引用 、结构体类型变量的定义 (2)定义结构体类型同时定义结构体类型变量: struct data i int day; int month int year 3 timel, time2 也可以再定义如下变量: struct data time3, time4 用此结构体类型,同样可以定义更多的该结构体 类型变量 第十三章结构体与共用体
第十三章 结构体与共用体 (2)定义结构体类型同时定义结构体类型变量: struct data { int day; int month; int year; } time1,time2; 也可以再定义如下变量: struct data time3,time4; 用此结构体类型,同样可以定义更多的该结构体 类型变量。 13.1 结构体类型变量的定义和引用 一、结构体类型变量的定义
131结构体类型变量的定义和引用 、结构体类型变量的定义 (3)直接定义结构体类型变量: struct { char name20];/*学生姓名*/ char sex;/*性别*/ long num;/*学号*/ float score[3];/*三科考试成绩* } personl, person2;/*定义该结构体类型变量*/ 该定义方法由于无法记录该结构体类型,所以除 直接定义外,不能再定义该结构体类型变量。 第十三章结构体与共用体
第十三章 结构体与共用体 (3)直接定义结构体类型变量: struct { char name[20]; / *学生姓名* / char sex; / *性别* / long num; / *学号* / float score[3]; / *三科考试成绩* / } person1,person2; / *定义该结构体类型变量* / 该定义方法由于无法记录该结构体类型,所以除 直接定义外,不能再定义该结构体类型变量。 13.1 结构体类型变量的定义和引用 一、结构体类型变量的定义
131结构体类型变量的定义和引用 二、结构体类型变量的引用 ■引用的形式为:. 若定义的结构体类型及变量如下: struct data i int day; int month int year; 3 timel, time2 则变量 ctime和tme2各成员的引用形式为: timel day、 timel. month、 timelyear及time2day、 time2. month time2 year 其结构体类型变量的各成员与相应的简单类型变量使用 方法完全相同。 第十三章结构体与共用体
第十三章 结构体与共用体 ◼ 引用的形式为: . 若定义的结构体类型及变量如下: struct data { int day; int month; int year; } time1,time2; 则变量time1和time2各成员的引用形式为: time1.day、time1.month、time1.year及time2.day、 time2.month、time2.year。 其结构体类型变量的各成员与相应的简单类型变量使用 方法完全相同。 13.1 结构体类型变量的定义和引用 二、结构体类型变量的引用
131结构体类型变量的定义和引用 二、结构体类型变量的初始化和赋值 ■结构体类型变量的定义和初始化为: struct stu/定义学生结构体类型*/ 〔 char name[20];/*学生姓名*/ char sex;/*性别*/ long num;/*学号*/ float score3];/*三科考试成绩* struct stu student= liping,f,970541,98.5 97.4,95}; 上述对结构体类型变量的三种定义形式均可在定 文时初 第十三章结构体与共用体
第十三章 结构体与共用体 ◼ 结构体类型变量的定义和初始化为: struct stu / *定义学生结构体类型* / { char name[20]; / * 学生姓名* / char sex; / * 性别* / long num; / *学号* / float score[3]; / * 三科考试成绩* / }; struct stu student={"liping",'f',970541,98.5, 97.4,95}; 上述对结构体类型变量的三种定义形式均可在定 义时初始化。 13.1 结构体类型变量的定义和引用 二、结构体类型变量的初始化和赋值
131结构体类型变量的定义和引用 二、结构体类型变量的初始化和赋值 结构体类型变量完成初始化后,即各成员的值分 别为: student. name="liping student sex='f student num97054l、 student score0=98.5、 student score[l=974、 student . score2}=95。 其存储在内存的情况如图: Liping f 970541 98.5 97,4 95 在 ANSIC中允许相同类型的结构变量相互赋值。 第十三章结构体与共用体
第十三章 结构体与共用体 结构体类型变量完成初始化后,即各成员的值分 别为: student.name="liping"、student.sex='f'、 student.num=970541、student.score[0]=98.5、 student.score[1]=97.4、student.score[2]=95。 其存储在内存的情况如图: 13.1 结构体类型变量的定义和引用 二、结构体类型变量的初始化和赋值 Liping f 970541 98.5 97.4 95 在ANSI C中允许相同类型的结构变量相互赋值
131结构体类型变量的定义和引用 结构体类型变量的初始化和赋值 「例13.耳外部结构变量初始化。 struct stu*定义结构 int num; char sname char sex float score; 3 boy2, boyl=(102 ,"Zhang ping,M,78.5; main( i boy2=boyl; printf(Number=%odnName=%sIn, boy2num, boy2 name); printf("Sex=%oclnScore=%f\n, boy2 sex, boy2 score) 第十三章结构体与共用体
第十三章 结构体与共用体 [例13.1]外部结构变量初始化。 struct stu /*定义结构*/ { int num; char *name; char sex; float score; } boy2,boy1={102,"Zhang ping",'M',78.5}; main( ) { boy2=boy1; printf("Number=%d\nName=%s\n”,boy2.num,boy2.name); printf("Sex=%c\nScore=%f\n”,boy2.sex,boy2.score); } 13.1 结构体类型变量的定义和引用 二、结构体类型变量的初始化和赋值
131结构体类型变量的定义和引用 结构体类型变量的初始化和赋值 「例13.2给结构变量赋值并输出其值。 main( i struct stu int num; char *name: char sex: float score 3 boyl, boy2; boyl num=102 boyl. name="Zhang ping"; printf( input sex and scoreIn"); scan if ("%c %",&boylsex, &boylscore); boy2=boyl printf(Number=%dnName=%sn, boy2 num, boy2 name); printf("Sex=% cInscore=ofn", boy2 sex, boy2 score); 第十三章结构体与共用体
第十三章 结构体与共用体 [例13.2]给结构变量赋值并输出其值。 main( ) { struct stu { int num; char *name; char sex; float score; } boy1,boy2; boy1.num=102; boy1.name="Zhang ping"; printf("input sex and score\n"); scanf("%c %f",&boy1.sex,&boy1.score); boy2=boy1; printf("Number=%d\nName=%s\n”,boy2.num,boy2.name); printf("Sex=%c\nScore=%f\n",boy2.sex,boy2.score); } 13.1 结构体类型变量的定义和引用 二、结构体类型变量的初始化和赋值