黑马程序员技术交流社区

标题: iOS随堂笔记 [打印本页]

作者: Esther33    时间: 2015-8-11 21:17
标题: iOS随堂笔记
全局变量
1.概念:在所有函数外部定义的变量,称为全局变量
2.作用:用于存储一个需要长期存于内存,并需要改变的变量
3.特点:①生命周期跟随程序,程序启动创建,程序退出才会销毁
            ②作用域是其所在位置之下得所有函数,都可以共享并改变
            ③变量的使用遵循就近原则,如果函数内有同名变量,那么函数调用的是函数内的
            ④如果没有初始化赋值,默认值是0

结构体
1.概念:是一种数据类型,是构造类型,里面可以存不同类型的数据
2.作用:用于封装不同的数据类型到一个结构中,方便使用
3.用法:
定义:①定义结构体类型 struct 结构体类型{ 数据类型1 名称;数据类型2 名称;...}
         ②定义结构体变量及赋值:struct 结构体类型 变量名={数据1,数据2...};
取值:变量名  结构体元素变量名
赋值:变量名  结构体元素变量名=新值
4.特点:①可在定义结构体类型时同事定义结构体变量名,可定义匿名类型结构体
            ②同一作用域内不可重复定义结构体类型和结构变量,匿名类型结构体除外
            ③可在函数内也可在函数外,效果及用法类型于局部变量和全局变量,也可嵌套定义
            ④可同事在函数内外定义同一个类型,使用同样遵循就近原则,结构体变量也是如此

结构体数组
1.概念:是数组,只不过数组里每一个元素是结构体类型
2.作用:用于储存多个有关联的结构体
3.用法:
定义:struct 结构体类型  数组名[长度]={结构体1,结构体2}
赋值:

取值:数组名[角标];单独
4.特点:遵循数组的特点

结构体的指针
1.概念:是指针,只不过指针类型是结构体类型
2.作用:用于存储结构体的地址,并操作地址对应的结构体空间里的数据
3.用法:
定义及初始化赋值: struct 结构体类型 *指针名=&结构体变量

取值:(*指针名).结构体元素名; 如:(*p).name
           指针名->结构体元素名; 如p->name
赋值:*指针名).结构体元素名=新值;如(*p).name=“hello”
          指针名->结构体元素名=新值; 如p->name=“hello”
4.特点:指针移动对结构体本身没有意义,结构体名并不包含第一个元素的地址

结构体分配内存空间遵循两个原则(对齐原则或对齐算法):
1.每个元素的偏移量(当前元素首地址距离整个结构体首地址的字节数)必须是自己所占有字节数的整数倍,如果不够,补齐上一个元素的字节数
2.整个结构体的字节数必须是其最大元素所占字节的整数倍,如果不够,最后一个元素填充字节

枚举
1.概念:是构造类型的一种,里面存得都是有别名的整形常量
2.作用:可以把多个整形常量以别名的形式封装成义个整体,便于别的变量识别并取值使用
3.用法:
定义:①定义枚举类型  enum 枚举类型{元素1,元素1,...};
                                                    或{元素1=0,元素2=1};
         ②定义枚举变量及赋值:enum 枚举类型 变量名=对应枚举里的一个元素名;
取值:变量名=枚举元素名
4.当一个变量只有固定的多个int 取值范围时
5.特点:①枚举类型智能是int 值,且不能直接用int常量,需要用别名(建议全部大写)
            ②如果不设定值,那么默认第一个元素是0,以此类推
            ③同一个作用域内不能出现重复的元素,不同的枚举类型也不行

注意:枚举一旦类型定义成功之后里面的数据常量不能再更改

共同体:同一片空间,可以存不同的数据类型,但是每次只能创建一个类型元素
如:union person per; 任意一次赋值都会把之前的数据替换


宏定义
1.概念:是一个替换代码的预处理指令
2.作用:可以在编译之前进行代码替换
3.用法:
开始替换:#define 被替换类容   替换成的内容
如:#define kLength 6表示从这行开始下面所有代码中的kLength替换成6
结束替换:#undef  被替换内容; 如:#undef kLength表示到这一行,宏定义失效
4.当需要用一些重复性代码或简单的函数运算时,可以用宏定义,提高效率
5.特点:①命名尽量以大写或小写k开头,便于区分(规范)
②被双引号括起来的不会被替换
③宏定义只会做代码替换,不会关注任何逻辑,容易出现优先级错去(加括号解决)
④替换可以设置作用域,如果不设置,作用域则是这行代码出现到代码的最后一行

作者: 飓风少年    时间: 2015-8-11 21:34
好吧!还是蛮全的。。
作者: 阿伦666    时间: 2015-8-11 21:51
恩,貌似确实是一个班的啊,你哪位啊?
作者: xiaoguang    时间: 2015-8-11 22:24
写的还不错
作者: 晚上没饭吃    时间: 2015-8-11 22:41
路过中。。。。。。。。。。。。。。。。。。
作者: WPeng    时间: 2015-8-11 22:56
互踩,互踩,互踩,重要的事说三遍,
作者: tianmoqingcheng    时间: 2015-8-11 23:02
不错不错!!!
作者: gundana121    时间: 2015-8-11 23:13
挺给力的
作者: qqikufei    时间: 2015-8-12 21:16
给力啊。值得我好好学习。
作者: 飓风少年    时间: 2015-8-12 21:25
继续努力啊!不错啊
作者: 默凉雨    时间: 2015-8-12 23:57
666.。。
作者: archdem1    时间: 2015-8-12 23:58
原来是同组的妹子啊.幸会幸会.
作者: huangsailin    时间: 2015-8-13 02:59
很好!继续坚持!!
作者: MoonLove    时间: 2015-8-14 09:00
不错哟。。。
作者: wangchao1992    时间: 2015-8-14 09:29
已看,,,




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2