大学C语言基础自学课件--第11章.ppt内容提要:
★结构体
★结构体变量的定义
★结构体变量的引用
★结构体变量的初始化
★结构体数组
★结构体和指针
★共用体
★用typedef定义类型
结构体
结构体是一种构造数据类型
用途:把不同类型的数据组合成一个整体-------自定义数据类型
结构体类型定义
struct [结构体名]
{
类型标识符成员名;
类型标识符成员名;
…………….
};
成员类型可以是
基本型或构造型
struct是关键字,
不能省略(structure)
合法标识符
可省:无名结构体
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
指定一个结构体类型,它相当于一个模型,其中并无具体数据,系统对之也不分配时机的内存单元。
为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量。
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
struct student stu1,stu2;
结构体变量的定义
先定义结构体类型,再定义结构体变量
一般形式:
struct 结构体名
{
类型标识符成员名;
类型标识符成员名;
…………….
};
struct 结构体名变量名表列;
例#define STUDENT struct student
STUDENT
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
STUDENT stu1,stu2;
定义结构体类型的同时定义结构体变量
一般形式:
struct 结构体名
{
类型标识符成员名;
类型标识符成员名;
…………….
}变量名表列;
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;
直接定义结构体变量
一般形式:
struct
{
类型标识符成员名;
类型标识符成员名;
…………….
}变量名表列;
例 struct
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;
在定义了结构体变量后,系统会为之分配内存单元。
name
num
sex
age
score
addr
2字节
2字节
20字节
1字节
4字节
30字节
…
…..
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;
说明:
2、结构体的嵌套定义:
结构体成员也可以是结构体变量。
1、类型与变量区别:
定义时先定义结构体类型,然后定义变量。
类型不分配空间,变量分配空间。
如:struct date
{ int month;
int day;
int year;
};
struct student
{ int num;
char name[20];
char sex;
int age;
float score;
struct date birthday;
char addr[30];
}student1,student2;
例 struct student
{ int num;
char name[20];
struct date
{ int month;
int day;
int year;
}birthday;
}stu;
3、成员名可以和变量名相同。
结构体变量的引用
引用规则
结构体变量不能整体引用,只能引用变量成员
可以将一个结构体变量赋值给另一个结构体变量
结构体嵌套时逐级引用
成员(分量)运算符
优先级: 1
结合性:从左向右
引用方式:
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char
大学C语言基础自学课件--第11章 来自淘豆网m.daumloan.com转载请标明出处.