C的数据类型
整型 int (integer的缩写)
字符型 char (character的缩写)
单精度型 float
基本类型实型(浮点型)
双精度型 double
枚举类
数组类
数据类型构造类结构体
共用体
指针类
空类型 void (无值型)
有时候需要将不同类型的数据组合成一个有机的整体,这些组合在一个整体中的数据是互相联系的。
如一个学生的信息包括学号、姓名、性别、年龄、成绩、地址等。
num
name
sex
age
score
addr
5001
Li Ming
M
19
Chengdu
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
应当把它们组织成一个组合项,在一个组合项内包含若干个类型不同(或相同)的数据项。
C语言提供了这种数据结构:允许用户将不同类型的数据组合成一个有机的整体,这些数据互相联系;这种数据结构称为结构体(structure)。
第十一章结构体与共用体
结构体
结构体是一种构造数据类型
用途:把不同类型的数据组合成一个整体-------自定义数据类型
结构体类型定义
struct [结构体名]
{
类型标识符成员名;
类型标识符成员名;
…………….
};
成员类型可以是
基本型或构造型
struct是关键字,
不能省略
合法标识符
可省:无名结构体
例 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字节
…
…..
结构体类型定义描述结构
的组织形式,不分配内存
例 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;
用无名结构体直接定义
变量只能一次
说明
结构体类型与结构体变量概念不同
类型:不分配内存; 变量:分配内存
类型:不能赋值、存取、运算; 变量:可以
结构体可嵌套
结构体成员名与程序中变量名可相同,不会混淆
结构体类型及变量的作用域与生存期
例 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;
c11结构体 来自淘豆网m.daumloan.com转载请标明出处.