1. C语言函数知识:
(1)如果函数形参是基本数据类型,意味着值传递,修改函数内部形参不会影响外面实参的值;如果形参是指针类型,则是地址传递;
(2)C语言的弱语法注意点:如果函数不声明返回值类型,那返回值类型默认为int,不是void;就算函数声明了返回值类型,也可以不返回任何值。
(3)C语言不允许同名函数存在,即使返回值和形参不一样也不行。
(4)链接就是把C语言的函数库的函数和程序员的函数合并,生成可执行文件。(比如,在.c文件中不写#include <stdio.h>,又在main函数中调用printf( )函数,编译时会因为找不到printf( )函数声明而报警告,但是链接时因为把系统的printf( )函数声明和实现合并过来,而顺利运行)。
(5)假设普通变量a,指针变量p,如果 p = &a,那么*p = a,意味着p访问自己指向的存储空间。指针变量p前面的数据类型代表p只能指向该数据类型的变量(也就是只能存储该数据类型变量的内存地址)。
(6)定义一个指针变量:int *p; 初始化指针变量:p = &a。注意:不要操作未初始化的指针变量。
(7)
int a = 0;
int *p = &a,这里的"*"仅仅是个符号,代表p是个指针类型变量;
*p = a,这里的“*”代表访问p指向的存储空间,即间接访问变量a。
(8)在64位系统中,所有类型指针都占用8个字节。之所以给指针分类型,是为对了指针指向的变量进行赋值取值时,知道从哪个内存地址开始,一共赋值给多少个字节或者从多少个字节中取值。
(9)C语言中,数组名就代表数组的地址,而数组首元素的地址就代表数组地址;所以,ptr = &array[0] 等价于 ptr = array, 都是用一个指针变量指向该数组。
(10)指针指向数组的首元素,指向字符串的首字符(换句话说,指向数组的指针存储的是数组首元素的地址,指向字符串的指针存储的是字符串的首字符地址;再换句话说,数组类型的指针指向数组首元素,字符串类型指针指向字符串首字符)。
(11)
返回指针的函数:函数返回值是个指针
指向函数的指针:定义一个指向函数的指针变量,可以间接调用函数。
(12)数组和结构体变量都是构造类型,定义一个数组和结构体都只能定义的同时赋值。
(13)定义结构体的三种方式:
(14)数据类型:
(15)内存寻址由大到小。
(16)以#开头的指令都是预处理指令(#include, #import, #define,#undef)。
1. 预处理指令分3种:1> 宏定义 2> 条件编译 3> 文件包含
2. 预处理指令在代码翻译成0和1之前就执行
3. 预处理的位置是随便写的,从编写那行开始,一直到文件结尾,可以用#undef中途截止
4. 带参数的宏格式:#define 左边内容 右边内容。作用简单粗暴:编译前把左边的替换成右边的。而且一定要注意,每个参数都必须带小括号!!!!
4. 宏名一般用大写或者以k开头。COUNT 或者 kCount(约定俗成,没有why)
(17)typedef用于给已存在的数据类型起别名,它对结构体和枚举来说极其重要,不掌握的话苹果源代码根本看不懂!!!!! 至于枚举只不过关键字和结构体不一样,格式差求不多~~~
(18)框架:按照软件工程的术语,框架是可以复用的设计构件,规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程。也有人给出定义:框架是在一个给定的问题领域内,一个应用程序的一部分设计与实现。iOS开发中的框架指的是有许多类、函数、协议、分类和文档等按照一定逻辑组织起来的集合,为iOS应用开发提供便利,包含foundation,UIKit,Core Animation,Core Graphics,Core Data等等。
iOS框架介绍:http://blog.csdn.net/yuhuangc/article/details/7575519
(19)BOOL类型的本质:typedef signed char BOOL;
(20)类的继承关系和isa指针指向图:
在实现中,Root Class 是指 NSObject,我们可以从图中看出:
NSObject 类包括它的对象实例方法。
NSObject 的元类包括它的类方法,例如 alloc 方法。
NSObject 的元类继承自 NSObject 类。
一个 NSObject 的类中的方法同时也会被 NSObject 的子类在查找方法时找到。
引用唐巧博文:
Objective-C对象模型及应用:http://blog.devtang.com/2013/10/15/objective-c-object-model/
谈Objective-C block的实现:http://blog.devtang.com/2013/07/28/a-look-inside-blocks/
(22)