第十一章结构体与共用体
1
概述
结构体是一种构造数据类型
用途:把不同类型的数据组合成一个整体--自定义数据类型
结构体类型声明
struct [结构体名]
{
类型标识符成员名;
类型标识符成员名;
…………….
};
成员类型可以是
基本型或构造型
struct是关键字,
不能省略
合法标识符
可省:无名结构体
2
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
name
num
sex
age
score
addr
2字节
2字节
20字节
1字节
4字节
30字节
…
…..
结构体类型声明描述结构
的组织形式,不分配内存
3
例 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;
4
声明结构体类型的同时定义结构体变量
一般形式:
struct 结构体名
{
类型标识符成员名;
类型标识符成员名;
…………….
}变量名表列;
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;
5
直接定义结构体变量
一般形式:
struct
{
类型标识符成员名;
类型标识符成员名;
…………….
}变量名表列;
例 struct
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;
用无名结构体直接
定义变量,只能一次
6
例 struct date
{ int month;
int day;
int year;
};
struct student
{ int num;
char name[20];
struct date birthday;
}stu;
num
name
birthday
month
day
year
例 struct student
{ int num;
char name[20];
struct date
{ int month;
int day;
int year;
}birthday;
}stu;
num
name
birthday
month
day
year
说明
结构体类型与结构体变量概念不同
类型: 不分配内存; 变量: 分配内存
类型: 不能赋值、存取、运算; 变量: 可以
对结构体中的成员可以单独使用,它的作用与地位相当于普通变量。
结构体中成员名与程序中变量名可相同,不会混淆
结构体可嵌套,即成员也可以是一个结构体变量
7
结构体变量的引用
引用规则
结构体变量不能整体引用, 只能引用变量成员
可以将一个结构体变量赋值给另一个结构体变量
结构体嵌套时逐级引用
成员(分量)运算符
优先级: 1
结合性:从左向右
引用方式: 结构体变量名. 成员名
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu1,stu2;
=10;
=;
+=;
++;
例 struct student
{ int num;
char name[20];
char sex;
int age;
float score;
char
c语言课件lesson10 来自淘豆网m.daumloan.com转载请标明出处.