C语言基础-结构体
2015-11-14 16:10
323 查看
一、基本概念
是由一系列具有相同类型或不同类型的数据构成的数据集合
定义的一般格式:
1.先定义结构体,再定义结构体变量
2.定义结构体的同时,定义结构体变量
3.使用匿名结构体定义结构体变量
1.先定义结构体变量,再初始化
2.定义结构体变量的同时初始化
五、结构体数组
结构体数组概念:结构体数组的每一个元素都是具有相同结构类型的下标结构变量
概念:指向结构变量的指针称为结构指针变量,结构指针变量中的值是所指向的结构变量的首地址
struct 结构名 *结构指针变量名;
是由一系列具有相同类型或不同类型的数据构成的数据集合
定义的一般格式:
struct 结构名{ 成员列表; }; //定义一个学生的结构 struct student{ int num; char name[20]; char sex; float score; }二、结构体变量的定义
1.先定义结构体,再定义结构体变量
struct Student{ //学生学号 int sno; //学生姓名 char name[20]; int age; float score; }; struct Student stu1;//struct 结构体名 结构体变量名 //这句话表示定义了一个Student结构体类型的变量,变量的名称是stu //stu是Student类型,stu可以存放学生的学号、姓名、年龄、成绩
2.定义结构体的同时,定义结构体变量
struct 结构体名{ 成员列表; }结构体变量1,结构体变量2...;
3.使用匿名结构体定义结构体变量
struct { }结构体变量1,结构体变量2....; struct { char *color; int lunzi; int speed; }car1,car2,car3;三、结构体变量中成员的访问
一般形式: 结构体变量名.成员名 boy1.num 即第一个人的学号 boy2.sex 即第二个人的性别 如果成员本身又是一个结构体则必须逐级找到最低级的成员才能使用四、结构体变量的初始化
1.先定义结构体变量,再初始化
struct stu{ int num; char name[20]; char sex; float score; }; struct stu boy1,boy2; boy1.num = 10010; boy1.sex = 'f'; boy1.score = 59.99f;
2.定义结构体变量的同时初始化
五、结构体数组
结构体数组概念:结构体数组的每一个元素都是具有相同结构类型的下标结构变量
定义格式: struct 结构名{ 成员表列; }数组名[数组长度]; struct stu{ int num; char *name; char sex; float score; }boy[5];//定义了一个结构数组boy,共有5个元素,boy[0]-boy[4],每个数组元素都具有struct stu的结构形式结构体数组的初始化和遍历:
//初始化 //1.定义同时初始化 struct Student { char name[20]; int age; }boys[3] = {{"lwh",21},{"zbz",32},{"cgx",22}}; //2.定义的同时初始化 struct Student girls[2] = {{"adc",19},{"fei",21}}; //3.先定义,后初始化 struct Student ds[2]; ds[0] = (struct Student){"xmd",22}; //4. struct Student ss[2]; ss[0].age = 21; //遍历 for (int i=0; i<3; i++) { printf("name = %s,age = %d\n",boys[i].name,boys[i].age); } 运行结果: name = lwh,age = 21 name = zbz,age = 32 name = cgx,age = 22六、结构体指针
概念:指向结构变量的指针称为结构指针变量,结构指针变量中的值是所指向的结构变量的首地址
struct 结构名 *结构指针变量名;
struct Car{ int lunzi; int speed; }car1; struct Car *p = NULL; p = &car1;//正确的 //p = &Car//错误的
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- C#中结构体和字节数组转换实现
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- 探讨C语言的那些小秘密之断言
- C语言实现BMP转换JPG的方法
- 深入探讨C语言中局部变量与全局变量在内存中的存放位置
- C语言查找数组里数字重复次数的方法
- C语言泛型编程实例教程