OC基础复习(一)之入门

预习其实就是一种复习,所以掌握知识的重点是复习而不是预习,这一点我竟然才明白

问题1:#include和#import的区别?

1.import引入头文件时,会自动检查是否有重复的文件,有就不会引入,可以避免重复包含

2.include是利用预处理指令#ifnefXXX #define #include<stdio.h> #endif 来避免文件重复包含

那么重复包含的意思也就呼之欲出了:重复包含就是重复引用头文件中的某个文件,

重复定义. 举一个实在的例子,例如我们在一个头文件定义一个变量 int var=10; 当你重复包含的时候,相当于var 定义了两次(声明与定义的区别是基础知识,请用google 百度之) . 这样做有什么危害呢? 直觉告诉我违反了一次定义的这个原则.当我读完<深入了解计算机系统>(强烈推荐,这个问题的可在编那一章看到)这一本书的时候这个问题也就解答了: 计算机很笨的,int var=10;相当于两次的强定义(强定义是啥?又一个新名词.泪....) 这在编译的使得笨笨的计算机搞不清到底才是Mr.Right one. 然后悲剧就出现了.
知识点:OC 中创建一个对象并访问成员变量
1.OC中如何创建对象: 例:[Person new];
[Person new];干了三件事:
1)向计算机申请内存空间(分配内存空间)
2)给类中每一个成员变量初始化(初始化成员变量)
3)返回新申请空间的首地址
2.Car *car = [Car new];的理解:
1)定义了一个Car类型的指针变量,指针变量指向新申请的内存空间(这个指针可以通俗的去理解:我的名字曹魏相当于一个指针变量,而曹魏指的就是我这个人)
2)返回新申请内存空间的首地址
 
未完待续..................
 
 
 
posted @ 2016-10-15 16:37  忆缘晨风  阅读(184)  评论(0编辑  收藏  举报