c语言第二周总结-结构体
2015-06-20 21:00
405 查看
结构体
是一种自定义的数据类型, 可以用来定义变量.
结构体和数组一样,都是大容器,可以存储多个变量, 但是结构体比数组灵活,可以存储不同类型的数据.
定义: **注意:大括号最后面的分号; 每个成员变量之间的分号;
定义结构体变量: 通过结构体类型定义结构体变量名
struct 结构体名 变量名 = {初值};
结构体类型: struct + 结构体名
结构体成员的访问
结构体变量名. 成员变量名
例如
注:结构体成员变量与普通变量一样,可直接赋值
给字符串( 字符数组 )赋值, 一定要用字符串操作函数strcpy();
注意
结构体变量可以直接整体赋值,但数组不可以.
如
关于数组,若初值为{0}; 数组维度要标明.
// int a[4] = {0};
// 可以用变量定义数组长度,但不能赋值
// 如 int a = 10; int b[a];
// 数组 不能直接赋值, 但可以通过结构体来赋值.
匿名结构体
结构体的声明与变量的定义组合在一起
typedef
对现有类型创建一个类型别名
typedef 原类型名 新类型名;
可以使用typedef定义结构体
结构体内存占用(见上)
以最大成员变量类型所占空间为分配单位
按结构体成员声明顺序自上而下分配
分配空间不足以存储成员变量时, 分配新的空间单位
结构体嵌套
结构体的成员依然可以是结构体
但必须确保该嵌套结构体已经在之前定义过.
结构体数组
将多个结构体变量放到数组中,构成结构体数组
可以通过下标访问结构体变量
总结
结构体是一种⽐比较灵活的数据类型,并且与OC要学的类很相似。
结构体和数组的相互嵌套可以实现比较复杂的数据结构
是一种自定义的数据类型, 可以用来定义变量.
结构体和数组一样,都是大容器,可以存储多个变量, 但是结构体比数组灵活,可以存储不同类型的数据.
定义: **注意:大括号最后面的分号; 每个成员变量之间的分号;
struct 结构体名 { 类型名 成员名; 类型名 成员名; ... };
定义结构体变量: 通过结构体类型定义结构体变量名
struct 结构体名 变量名 = {初值};
结构体类型: struct + 结构体名
// 定义结构体 struct student { // student 结构体名 // 结构体成员 char name[20];//姓名 5个 4字节 不足,则分配新的空间 char gender;//存储性别 4字节, 剩余则空着 int age;//年龄 4字节 float score;//分数 4字节,该结构体占32个字节空间 }; // 分号是结构体定义的结束标志,必不可少. // 定义结构体变量 struct student stu = {"liuy", 'w', 18, 89.6}; // 结构体类型: struct student, 结构体变量名stu
结构体成员的访问
结构体变量名. 成员变量名
例如
stu.name //stu的姓名
注:结构体成员变量与普通变量一样,可直接赋值
给字符串( 字符数组 )赋值, 一定要用字符串操作函数strcpy();
strcpy(stu.name, "jjj"); printf("%s\n", stu.name); printf("%c\n", stu.gender = 'f');
注意
结构体变量可以直接整体赋值,但数组不可以.
如
stu1 = stu2;// stu1,stu2均为结构体student变量
关于数组,若初值为{0}; 数组维度要标明.
// int a[4] = {0};
// 可以用变量定义数组长度,但不能赋值
// 如 int a = 10; int b[a];
// 数组 不能直接赋值, 但可以通过结构体来赋值.
匿名结构体
结构体的声明与变量的定义组合在一起
//例如: struct{ int num; char name[20]; char sex; float score; } stu1 = {1,”wukong”, ‘m’,99.5f}, stu2 = {2, “bajie”, ‘m’, 65.0f};
typedef
对现有类型创建一个类型别名
typedef 原类型名 新类型名;
typedef int tao; tao a = 10; // 等同于 int a = 10;
可以使用typedef定义结构体
struct student { ... }; typedef struct student Student;
typedef struct student { ... }Student;
结构体内存占用(见上)
以最大成员变量类型所占空间为分配单位
按结构体成员声明顺序自上而下分配
分配空间不足以存储成员变量时, 分配新的空间单位
结构体嵌套
结构体的成员依然可以是结构体
但必须确保该嵌套结构体已经在之前定义过.
结构体数组
将多个结构体变量放到数组中,构成结构体数组
struct student students[10] = {0};
可以通过下标访问结构体变量
students[0].name; // 第⼀一个学⽣生的姓名
总结
结构体是一种⽐比较灵活的数据类型,并且与OC要学的类很相似。
结构体和数组的相互嵌套可以实现比较复杂的数据结构
相关文章推荐
- 《C++专项练习》 — (2)
- 《C++专项练习》 — (2)
- c语言第二周总结-函数
- C++文件读写详解(ofstream,ifstream,fstream)
- C++学习笔记(三)STL简介(二)
- 【leetcode c++】26 Remove Duplicates from Sorted Array
- Effective C++条款16解读:成对使用new和delete时要采取相同形式
- C语言一个双向链表的实现
- C语言单链表的实现
- Effective C++条款20解读:宁以pass by reference to const替换pass by value
- c语言第二周总结-数组2
- 黑马程序员——C语言基础知识整理——数据类型、常量与变量
- C语言下不使用日期函数输入任意日期计算周几的程序
- c语言第二周总结-数组
- C++引用计数智能指针
- C/C++里一些常用函数
- java和c++语言编程的异同之输出制定范围内的素数
- c语言第二周总结-循环语句
- 在VS2010上使用C#调用非托管C++生成的DLL文件
- C++基础知识