01-C语言概述-【ios开发零基础,菜鸟阿新带你从C语言开始学起】

虽然ios程序员现在不如以前好找工作,但出于喜欢,我还是执着的学下去。让菜鸟带你一起飞翔吧!以下为初学时整理的,仅供参考!

一、ios程序员为什么要学习C语言呢?

答曰:iOS开发的核心语言是Objective-C,Objective-C基于C语言,Objective-C是在C语言的基础加了一层面向对象的语法。为了能够更好地掌握Objective-C,我们可以先学习C语言,然后在C语言的基础上升华到Objective-C。

   当然,你也可以直接学习Objective-C,只是我个人建议先学习C语言,再学习Objective-C,最后学习iOS开发,这样效果会好一点。

二、C语言简史

  • C语言于1972年发明,首次使用是用于重写UINX操作系统(UNIX以前是用汇编写的)
  • 随着UNIX操作系统的成功,C语言也得到了大幅度地推广,至今还是世界上最流行、使用最广泛的高级程序设计语言之一
  • C语言是一门面向过程的语言,非面向对象的语言
       
    【有的小伙伴可能又问了,新哥什么叫面向过程?什么叫面向对象?
         我这么简单的给大家介绍一下: 面向过程即“怎么做”,面向对象即“做什么”
              举个我们小时候的常说的一个脑筋急转弯: 大象放进冰箱里
                                          面向过程   1、把冰箱门打开   
                                                    2、把大象放进去
                                                    3、把冰箱门关上  
                                      面向对象: 有2个对象   分别是 1、大象   2、冰箱
                                                  大象的对象:里有可以放到某物体里的方法,
                                                  冰箱的对象:里有把冰箱门打开,把冰箱门关上,把某物体放进来的方法
                                          这样我们再把大象放到冰箱里就是使用2个对象的方法来实现的。 

       01-C语言概述-【ios开发零基础,菜鸟阿新带你从C语言开始学起】_第1张图片
     从C语言诞生至今,它的热度一点也没减过,前两名基本上都是Java和C。     在连续两年屈居亚军后,C语言终于替代了Java 榜首的位置。放眼前五名,Python和C++在 3、4名上互换了位置,C#跌出前五,其位置由近几年上升势头迅猛的 R 语言所取代。近年来,包括 R 在内的大数据类编程语言总体呈现出一种上升趋势。 谷歌和苹果在榜单上同样你追我赶,最新的榜单显示谷歌的 Go 语言击败了苹果的Swift并杀入前十,但swift 的上升同样不容小觑,其今年排到了第 11 位,相比于去年上升了 5个排名。值得一提的是,去年曾有若干新兴编程语言和 Swift 一起初涉榜单,但今年却不见了它们的踪影。

二、C语言的特点

1.丰富的运算符

计算机的基本功能就是计算,因此一门程序设计语言的计算能力是非常重要的。C语言提供了34种运算符,计算类型及其丰富,其中包括了最基本的加减乘除运算。

2.丰富的数据类型

C语言之所以生命力如何强大,很大一部分是因为它拥有丰富的数据类型。C语言的数据类型有:整型(int)、实型(float)、字符型(char)、数组类型(int [])、指针类型(void *)、结构体类型(struct)、共用体类型(union)等。众多数据类型中,最强大的是指针,通过指针我们可以直接访问内存地址。指针使用得当的话,不仅可以节省代码量,还可以优化内存管理、提高性能。因此,指针是一个非常重要的概念,必须重视。如果你说C语言中除了指针,其他都学得挺好的,那你干脆说你没学过C语言。正因为C语言数据类型丰富,运算能力极强,因此很多数据库都是用C语言编写的,比如DB2、Oracle等。

3.允许直接访问物理地址,对硬件进行操作

由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元。

4.高效率的目标代码

对比汇编语言,C语言可读性好,易于调试、修改和移植,代码质量与汇编语言相当。

5.可移植性好

在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。


上面说的都算是C语言的优点,不过它肯定是有缺点的:

  • 由于C语言是面向过程的,因此它的数据封装性差、安全性低,这就是C语言和其他面向对象语言的区别之一。面向对象语言的特性之一就是数据的封装性
  • 语法限制不严格,对变量的类型约束不严格,对数组下标越界不作检查等

三、C语言能做什么?

  • 由于C语言具有强大的数据处理能力,而且允许直接访问物理地址,直接对硬件操作,因此它适于编写系统软件、图形处理、单片机程序、嵌入式系统开发甚至是用于科研
  • 很多操作系统的底层都是用C语言写的,比如android
  •    iOS开发中的核心语言是Objective-C(简称OC),OC是在C语言的基础上加了一层面向对象语法

四、C语言的版本问题

    从UNIX操作系统的成功后,C语言得到了广泛地应用,从大型主机到小型微机,都有C语言活跃的身影,也衍生了很多个版本的C语言。长期以往,C语言将可能成为一门有多个变种、松散的语言。一门正式的语言,肯定要有个标准才行,不然就乱套了。为了改变这种局面,1983年美国国家标准局(American National Standards Institute,简称ANSI)成立了一个委员会,开始制定C语言标准的工作。1989年C语言标准被批准,这个版本的C语言标准通常被称为ANSI C

五、C语言语法预览

          01-C语言概述-【ios开发零基础,菜鸟阿新带你从C语言开始学起】_第2张图片

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

针对不懂计算机的小伙伴在此再补充点基础的计算机和软件常识:

1.   计算机运行原理

1)  硬件基本组成:硬盘、内存、CPU

2)  各个部件之间的运作协调(下图)

    01-C语言概述-【ios开发零基础,菜鸟阿新带你从C语言开始学起】_第3张图片

2.  计算机只能识别0和1

1)  0和1组成的指令

2)  0和1组成的数据

 

3.  计算机和软件的联系

1)     软件的基本概念:指令的集合

2)      软件的安装运行过程

  •   安装在硬盘
  •   运行在内存

3)      为什么要开发软件:

         写出能控制计算机的指令



你可能感兴趣的:(C语言,面向过程与面向对象的区别,C语言简史,C语言的特点)