1. include <>: 编译器目录 à 系统目录 // 导入的系统文件 2. include “ ”: 当前文件 à 编译器目录 à 系统目录 // 导入的是自定义文件 3. 字符串处理函数, strcpy, strcmp, strcat 4. const: const 在*左边, 指向可变, 值不可变 const 在*的右边, 指向不可变, 值可变 const 在*的两边, 都不可变 5. 野指针: 在c语言里面未被初始化的指针变量, 空间被释放了, 继续访问, 会产生野指针错误(在OC中) 6. 内存泄露: 栈区的指针变量被释放, 堆区的没被释放. 7. 结构体(struct):用来存放若干个相同或者不同类型的一个构造类型 8.枚举: 当一个变量只有有限的几个取值的时候,可以使用枚举 9.typedef: 用来给已经存在的数据类型起别名, 基本数据类型, 结构体, 枚举, 函数指针, 数组. 10. 什么宏: 用#define指令来定义的字符串 11: 什么是预处理指令: 预处理指令一般式在编译之前将要做的事情做完, 一般是以#开头的指令. 比如: 条件编译指令, 宏, 文件包含 12. static是用来干嘛的? Static可以用来修饰局部变量, 全局变量, 函数, 是一个内部的全局变量, 默认情况下只能在当前文件访问. 13.extern是用来干嘛的? Extern修饰的全局变量是一个外部变量, 在其他文件可以访问, 可以用来修饰全局变量, 函数, 不能用来修饰局部变量 14. 打开文件的函数,fopen, 关闭函数:fclose, 15. fread读取数据块, fwrite:写入数据块 16.什么对象? 万物皆对象, 什么是类? 类就是一类具体事物的抽象.类和对象之前的关系? 类是对象的抽象, 对象是类的实例 17: 内存分为哪几个区域,分别存放什么数据? 栈区:局部变量 堆区:程序在运行过程中动态分配的内存,比如使用malloc, calloc’,relloc,还有oc中的对象 bss区: 未被初始化的全局变量和静态变量 数据段(): 已经初始化的全局变量和静态变量, 常量也是数据段的一部分 代码段: 程序编译产生的二进制数据 18.什么是类方法? 以加号开头的方法,一般由类名来调用. 19:什么是封装? 给对象中的成员变量提供一个set和get方法访问的接口, 这样有利于保证数据安全性 20: 什么是self? 在方法当中,谁调用当前方法, self就代表谁. 21什么是继承? 子类继承自父类之后可以使用父类当中暴露出来成员变量和方法, 也可以重写父类中方法 22.什么是多态: 不同的对象以自己的方法响应父类的方法,它的表现形式是父类的指针变量指向子类的对象 23.id和instancetype的区别, id和instancetype都可以作为方法的返回值, 并且id可以用来定义类型, 但是instancetype可以精确返回值的类型 24.什么是构造方法,?构造方法的作用是什么? 构造方法一般以init开头, 它的作用是当前对象创建的时候已经有固定的初始值. 25:MRC: 手动内存管理 26:ARC: 自动内存管理 27.什么循环引用: 在mrc中如果两个对象相互拥有,会产生循环引用,解决办法:一端使用retain, 一端用assign; 在arc环境下, 一端使用strong, 一端使用assing(或者weak); 28. autoreleasepool是什么? 是自动释放池,它是一个特殊的栈结构, 特点是先进后出 29.什么是分类? 分类成为category,分类也叫类目, 类别, 在不改变原有类的基础上,给原类扩充方法 30,什么类扩展? 类扩展是一种匿名分类, 也成为”延展”, 可以声明属性, 方法. 笔试题: 1. 冒泡排序, 选择排序 2. 统计单词个数, 将单词的首字母大写 3. 给字符数组排序(从键盘接收, 给出一个现成的字符数组) 4. 枪和士兵(概率不大) 5. 协议(代理设计模式)
|