结构体(Day-6)
2015-09-14 11:04
267 查看
1.普通结构体
结构体:自定义的一种数据类型 关键字:structstruct 结构体名{
类型说明符 成员名;
…..
类型说明符 成员名;
};
赋初值:
struct 结构体名 变量名 = {初值};
结构体成员变量访问:
struct teacher{ // 结构体定义 char name[20]; char gender; int age; char major[10]; }; struct teacher stu1 = {"balabala", 'f', 28, "iOS"}; stu1.name = "zhangsan"; // 结构体成员变量的访问及赋值 stu2.age = 32; // 访问:-----结构体变量名.成员变量名-----
2.匿名结构体
结构体的声明与变量定义组合在一起:struct { int number; int age; } stu1 = {1, 23} stu2 = {2, 34];
typedef:定义类型
oc中:
typedef int Integer; // 之后的int类型数据定义时,可以使用Integer替换
struct student{ int number; int age; } typedef struct student Student; // 将结构体struct student定义为Student
typedef struct student { char name[20]; int number; int age; float score; }Student; // 起别名
2.结构体内存占用:
结构体成员变量,从上至下存储,从第一个开始
存储规则:按各种数据类型的倍数存储,如果被占用,向下延续
总空间的字节数 = 最大类型变量字节数的最小整数倍
例:
int a; double b; char c; int d; char e; // 需要分配32字节的空间
解释:
a: 0–3
b: 8–15 因为b是double型数据,所以要找8的倍数存储b
c: 16
d:20–23
e: 24 总共占用25个字节,double(8)的倍数:24,32 因为25>24 所以补齐到32各字节0—-31
3.结构体嵌套使用:
typedef struct birthday{ int year; int month; int day; }Birthday; typedef struct person{ char name[20]; int age; float high; float weight; char gender; Birthday date; // 结构体嵌套 访问:结构体变量名.date.year }Person;
3.结构体数组
定义:typedef struct student{ char name[20]; int age; char gender; float score; }Student; Student stu[5] = { {...}, {...}, {...}, {...}, {...} };
相关文章推荐
- 蓝牙
- 算法复杂度
- android AbsListView之ListView使用(2)-BaseAdapter
- AI资源
- [转]CENTOS 6.5 配置YUM安装NGINX+服务器负载均衡
- 链表排序
- WPA入门(一) —— 到底为什么这么慢?
- Kernel Kconfig:warning: leading whitespace ignored
- yum update错误Transaction Check Error解决方式
- 谷歌火狐ie使用ajax访问本地文件
- wordpress /wp-content/plugins/wp-symposium/server/php/UploadHandler.php File Arbitrary Upload Vul
- JDBC连接MySQL数据库
- 排序
- LinkedHashMap深入学习
- Http Response Code
- SIM5000简略笔记
- 《Head First Design Pattern》读后感-----设计模式
- scala中的构造器
- HTTP返回状态码合集
- ListView的优化