2、在定义结构体类型的同时定义变量 struct student int num: char name 20; float score 3stul, stu2 3、直接定义结构体类型变量(不出现结构体类型名) struct int num: char name 20; float score: 3stul, stu2 心U
2、在定义结构体类型的同时定义变量 struct student { int num; char name[20]; float score; }stu1, stu2; 3、直接定义结构体类型变量 struct { int num; char name[20]; float score; }stu1, stu2; (不出现结构体类型名)
4、说明 ①、类型与变量是不同的概念,不要混淆: 只能对变量赋值、存取或运算,而不能对一个类型赋值、存取 或运算;在编译时,对类型不分配内存空间,只对变量分配空间。 ②、结构体变量可以嵌套定义; struct student struct date i int num; { char name 20; int years char sex: int month; struct date birth int day; char addr[ 30]; }; sizeof(struct student)=? 2+20+1+6+30=59 心U
4、说明 ①、类型与变量是不同的概念,不要混淆: 只能对变量赋值、存取或运算,而不能对一个类型赋值、存取 或运算;在编译时,对类型不分配内存空间,只对变量分配空间。 ②、结构体变量可以嵌套定义; struct date { int year; int month; int day; }; struct student { int num; char name[20]; char sex; struct date birth; char addr[30]; }; sizeof(struct student)=? 2+20+1+6+30=59
2结构体变量的引用 成员运算符,优先级最高 1、引用形式: 结构体变量名城员名 struct student t int num; struct student stul, stu2; char name[20] stu 1. num= 10001. float score strcpy(stul. name, Li Ming"); stu 1 score=95
2 结构体变量的引用 1、引用形式: 结构体变量名.成员名 成员运算符,优先级最高 struct student { int num; char name[20]; float score; }; struct student stu1,stu2; stu1.num=10001; strcpy(stu1.name, "Li Ming"); stu1.score=95;
例、定义一个结构体类型 Student,成员包括学号、姓名和成绩,请 输入并输出该学生的信息。 问题: 如何定义一个结构体类型? 如何使用结构体类型? 定义相应的变量 结构体类型定义在何处?函数内还是函数外? 都可以,但一般放在函数外面,且放在所有函数之前,预处理命令 之后,以便所有的函数都可以使用;类似全局变量 如何输入输出结构体成员? 逐个输入输出成员
例、定义一个结构体类型student,成员包括学号、姓名和成绩,请 输入并输出该学生的信息。 问题: ➢如何定义一个结构体类型? ➢如何使用结构体类型? 定义相应的变量 ➢结构体类型定义在何处?函数内还是函数外? 都可以,但一般放在函数外面,且放在所有函数之前,预处理命令 之后,以便所有的函数都可以使用;类似全局变量 ➢如何输入输出结构体成员? 逐个输入输出成员
include <stdio h> struct student Int num; char name[20] float score: void main( struct student s printf("nnum:); printf("nnum scanf(%d", &s num) scanf("%d", &snum printf("name getchar) scanf("%s", s name);) printf("name: ) gets(s name) printf("score: ) scanf("%f", &sscore) 说明:在使用gets函数前使用 printf( "\nnum: %d\n" snum) getchar函数,把上次的回车 printf("name: %sIn",Sname); 读走 printf("score: %fn",sscore)
#include <stdio.h> struct student { int num; char name[20]; float score; }; void main( ) { } struct student s; printf("\nnum:"); scanf("%d",&s.num); printf("name:"); scanf("%s",s.name); printf("score:"); scanf("%f",&s.score); printf("\nnum:%d\n",s.num); printf("name:%s\n",s.name); printf("score:%f\n",s.score); printf("\nnum:"); scanf("%d",&s.num); getchar( ); printf("name:"); gets(s.name); 说明:在使用gets函数前使用 getchar函数,把上次的回车 读走