写在开头

关于写作目的

C语言是我接触的第一门程序语言,或多或少还是有那么一点“初恋情结”。在之后的开发中,不管是做Java,还是做PHP,还是现在在做的iOS,我都不愿意丢掉C(也丢不掉)。

面向读者

初学者,或将C语言作为工具的其他语言开发者。

关于内容

主要面向的读者还是iOS开发人员,准确点,是使用OC语言的iOS开发者。所以,在内容上,也相应有了侧重。主要是程序的三大结构,指针。数据结构与算法也有,但是因为这些用语言并不好表述,所以只是简单的讲解下。刚兴趣的读者,完全可以把这个作为方向,继续深入研究。

学iOS先学C语言

在给很多学生讲课的时候(iOS开发),我都会问,你们为什么要学C?不学C能不能做iOS?一般情况下,他们也说不出一个所以然。甚至一些已经毕业了的学生,都还很“大气”的说:“我就是不懂C,iOS里面用到的所有方法都是我自己封装的”。然后我让他把代码发给我看,结果所谓的方法封装,只不过是拿OC调用了一次而已,并且漏洞百出。倒不是说这和C有关系,而是想要对底层进行理解与重写,那C语言,是你绕都绕不过去的坎。

所以,为了大家能在学习iOS之前,安安心心的学习C语言,不要急功近利,我还是把为什么我认为要先学C语言的原因给出来:

  1. 帮助理解计算机内存;
  2. 帮助理解数据结构;
  3. 帮助理解OC底层的实现(因为OC不开源,想要理解算法,可以看下Java的实现);
  4. 最后一个也是我最不愿意说的一个,为了面试。

检验标准

如果只是为了方便理解OC来学习C语言的话,那么,检验标准就是能在学习OC的时候,马上能反应出来,它的内存大概是什么样,用OC数组(NSArray)的时候可以联想到它是哪种数据结构,这样,我认为就差不多了。

关于环境

所有Demo与课程讲解,均使用Xcode。

教程Demo

https://github.com/saitjr/C-Toturials-Demo.git

联系方式

如果在学习过程中遇到无法解决的难点,请联系我[email protected]

纠错

如果发现错误或歧义,请直接在github上fork并修改,仓库地址:https://github.com/saitjr/C-Toturials.git