结构体 枚举 typedef
来源:互联网 发布:淘宝客手机版插件 编辑:程序博客网 时间:2024/05/29 18:11
IOS学习第15天
结构体
- 结构体数组
1.结构体数组的声明 struct 结构体名字 数组名[数组长度]; struct Student students[5];2.结构体数组的初始化:(赋值) 1>静态初始化:定义的同时赋值 struct Student students[] = { {"小明",18}, {"xiaohong",20}, {"xiaoxxx",30}, {}, {} }; 2>动态初始化:先定义后初始化 struct Student students[5]; //只有一种方式:挨个赋值 students[0] = {}; students[1] = {};3.结构体数组的长度计算:(长度:数组中的元素的个数) sizeof(数组名)/sizeof(元素的数据类型); sizeof(students)/sizeof(struct Student); ```* 结构体指针
1.声明格式
xxx aa;
xxx* p_aa = &aa;
struct 结构体名字 变量名;
struct 结构体名字 * p_aaa = &变量名;
2.怎么给结构体指针赋值
struct 结构体名字 * p_aa;
p_aa = & 结构体变量名;
3.结构体指针怎么使用?**
struct Student
{
char * name;
int age;
};//结构体类型
//定义了一个结构体变量
struct Student xiaoming;
//定义了一个结构体指针
struct Student * p_xiaoming = &xiaoming;
如何通过结构体指针 给结构体变量赋值
1>
(*p_xiaoming).name = “小明”;
(*p_xiaoming).age = 18;
2>指针可以直接访问成员变量p_xiaoming->name = "小红";p_xiaoming->age = 18;
注意:数组名是一个地址,首元素的地址
函数名是一个地址,函数在内存中的首地址
结构体变量名,不是一个地址,要获取结构体变量的地址 &结构体变量名
“小练习:
定义一个 dog 类型, 年龄 颜色
struct Dog{
//成员变量
int age;
char * color;
};
定义一个结构体指针,指向一个狗的变量,并且赋值
struct Dog wangcai;
//结构体指针 指向了 wangcai这个结构体
struct Dog * p_wangcai = &wangcai;
//通过结构体指针 给 结构体的成员变量赋值
p_wangcai->age = 200;
p_wangcai->color = “土豪金”;
“`
* 结构体嵌套
1,用1个变量来保存1个人. 姓名 年龄 出生日期 家产 日期: 年 int 月 int 日 int struct Date { int year; int month; int day; }; struct Person { char* name; int age; double money; //出生日期. struct Date birthday; };2."练习// 一个学生,有姓名,学号,3门课程(语文,数学,英语),每门课程都有课程名称和分数 //学生:姓名,学号,三门课程 //每一门课程:课程名称 ,分数 //课程的结构体 struct KeCheng{ char * kcName; float score; }; //学生的结构体 struct Student{ char * name;//姓名 int sno;//学号 struct KeCheng kechengs[3];// struct KeCheng kecheng2;// struct KeCheng kecheng3; }; //试一下给 小明结构体变量赋值 struct Student xiaoming; xiaoming.name = "小明"; xiaoming.sno = 10086; xiaoming.kechengs[0] = (struct KeCheng){"语文",100}; xiaoming.kechengs[1] = (struct KeCheng){"英语",200}; xiaoming.kechengs[2] = (struct KeCheng){"数学",120}; // printf("名字是%s,学号是%d,%s的成绩是%d",xiaoming.name,xiaoming.sno,xiaoming.kechengs[0].keName,xiaoming.kechengs[0].score); ```* 结构体与函数1.结构体作为函数的参数(1)结构体作为参数传值是值传递(2)如果你就是希望函数的内部可以修改实参结构体变量的值,那么就要使用指针2.结构体作为函数的返回值(1)在返回的时候,直接将这个结构体变量的值返回即可(2)如果你要返回结构体变量的地址,那么就要把这个结构体变量创建在堆区###枚举变量
1.什么时候要定义枚举类型?
有一个变量,要求这个变量 只能取值 几种情况之一
2.如何创建一个枚举类型
enum 枚举名字{
//可能的几种情况
情况1,
情况2,
情况3,
…
};
3.声明枚举类型的变量
//苹果官方 关于C中的枚举的命名规范,以k开头 后面的单词首个字母大写
//OC中的枚举,以相应的枚举名开头
enum Sex{
kMan,
kFemale,
kYao
};
enum Sex s1;//s1就是一个枚举变量
4.枚举变量的初始化
enum Sex s2 = kMan;
pragma mark - 18 [了解]枚举值所对应的整型的数
1.枚举的作用域
全局枚举
局部枚举
建议:一般写在文件的最上面,好让所有的函数可以访问
2.每1个枚举值/枚举项 都有1个对应的整型的数.
默认是从0开始,往后一次递增1
3.能不能直接为枚举变量赋值1个整型的数据.
可以,但是人类看不懂,所以不建议这么写
4.还可以手动指定,每一个枚举值对应的整型数据
enum Direction
{
East = 10,
South = 20,
North = 40,
West
};
pragma mark - 19 [了解]枚举的使用规范
1.定义枚举类型的时候
枚举妹名字 首个字母大写,如果由多个单词组成,那么每一个单词的首个字母都大写
2.枚举值/枚举项的命名
一般都是k开头
也可以是 枚举名字开头
enum WX{
WXJin,
WXMu,
WXShui,
WXHuo,
WXTu
};
“`
typedef
- 使用typedef将枚举类型和结构体类型取一个短别名
“`
1. 使用typedef为结构体类型取别名.(常用)
1>先声明,后起别名
struct Student
{
char *name;
int age;
int score;
};
typedef struct Student Student;
2>声明的同时起别名
typedef struct _Student
{
char *name;
int age;
int score;
}Student;
3>匿名结构体起别名typedef struct{ char *name; int age; int score;}Student;
2,使用typedef为枚举类型取1个短别名
1>先声明,后起别名 enum Direction { DirectionEast, DirectionSouth, DirectionWest, DirectionNorth };typedef enum Direction Direction;2>声明的同时起别名typedef enum _Direction{ DirectionEast, DirectionSouth, DirectionWest, DirectionNorth}Direction;3>匿名枚举起别名typedef enum{ DirectionEast, DirectionSouth, DirectionWest, DirectionNorth}Direction;```
- typedef/结构体/枚举/
- 结构体 枚举 typedef
- 结构体 枚举 typedef 应用
- 结构体,共用体,枚举体,typedef
- 结构体、共用体、枚举和typedef
- 自定义数据类型 结构体 枚举 typedef
- 黑马程序员--typedef关键字和结构体 枚举类型
- 【C语言连载六】--------变量、修饰词、结构体、枚举、typedef
- C语言第七节-结构体-枚举-typedef
- C语言(结构体、枚举、typedef)笔记 by STP
- C语言结构体,联合体,枚举与typedef
- 共用体,枚举,typedef
- typedef用法 & 结构体
- typedef 结构体定义
- typedef和结构体
- typedef 定义结构体
- 结构体和typedef
- 结构体与typedef
- TextView按钮点击第二次才有响应的问题解决
- 深入理解JVM性能调优
- JS:offsetWidth\offsetleft 等图文解释
- 最土团购数据表结构
- Microsoft SQL Server 2008 R2官方下载地址
- 结构体 枚举 typedef
- Linux基本命令(二)
- 16年夏天八月份开发经验
- urllib2 使用代理服务器
- ejabberd模块开发
- NGUI自定义事件(MonoBehaviour)&& 界面控件基类
- 羽化制作lomo照片
- ITSA [C_MM115-中] 奇妙數列
- 数据结构之线性结构--数组