c语言章节11

本文目录html

前面已经给你们介绍了iOS开发相关的一些基础知识,好比学习iOS开发须要什么准备iOS开发的前景等等。在《开篇》这讲中说过:其实iOS开发就是开发iPhone\iPad上的软件,而要想开发一款软件,首先要学习程序设计语言。iOS开发须要学习的主要程序设计语言有:C语言、C++、Objective-C,其中C++、Objective-C都是以C语言为基础,从C语言衍生出来的。从这讲开始,咱们就暂时抛开iOS相关的知识,沉下心来学习传说中的C语言。正式学习以前,先提醒一句:学习一门语言的语法是比较枯燥的事,很像是在学习1+1等于几,不可能说,学习C语言语法过程当中就能立刻作出一些好看的iPhone界面效果。你们要沉得住气,所谓苦尽甘来,没有语法的积累,如何能编写出好看的界面呢?android

1、计算机常识

在学习C语言以前,先要了解一些计算机常识ios

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

  • 你们都知道,计算机要通电才能工做,说白了,它跟电视、洗衣机同样,都是电器。电器都有个共同的能力:懂得判断通电仍是断电,通电就能工做,断电就中止工做。所以,从根本上讲,计算机只能识别电信号:高电平信号(通电)、低电平信号(断电),它只知道某个开关是通电仍是断电。咱们用1表明高电平,0表明低电平。
  • 也就说,计算机只能识别0和1。

 

2.二进制

由于计算机只能识别0和1,所以计算机所能识别的指令和数据都是用二进制数(0和1)来表示的。所谓二进制,就是用0和1来表示全部的数。不过咱们平常生活中最经常使用的是十进制,用0~9来表示全部的数程序员

1> 二进制指令

给计算机灌输一些指令,它就能执行相应的操做,而计算机只能识别由0和1组成的指令。在计算机发展初期,计算机的指令长度为16,即以16个二进制数(0或1)组成一条指令,例如,用1011011000000000这条指令,是让计算机进行一次加法运算。所以,若是要想计算机执行一系列的操做,就必须编写许多条由0和1组成的指令,能够想象的到,这个工做量是如此巨大。数据库

 

2> 二进制数据

平时咱们在计算机中存储的一些数据,好比文档、照片、视频等,都是以0和1的形式存储的。只不过计算机解析了这一大堆的0和1,以图形界面的形式将数据展现在咱们眼前。编程

 

2、程序设计语言发展史

咱们能够利用程序设计语言来编写程序,再将编好的程序运行到计算机上,计算机就可以按照程序中所说的去作。从计算机诞生至今,程序设计语言大体经历了3个发展阶段:机器语言、汇编语言、高级语言。其中,C语言属于高级语言。编程语言

1.机器语言

1> 什么是机器语言

在计算器诞生初期, 全部的计算机程序都是直接用计算机能识别的二进制指令来编写的,也就是说全部的代码里面只有0和1。这种程序设计语言就是“机器语言”。这些由0和1组成的二进制指令,又叫作“机器指令”性能

 

2> 优势

  • 因为机器语言编写出来的代码是能被计算机直接识别的,所以机器语言是直接对硬件产生做用的,程序的执行效率很是高。
  • 机器语言能直接访问、控制计算机的各类硬件设备,如磁盘、存储器、CPU、I/O端口等。

 

3> 缺点

  • 用机器语言编写程序,编程人员要首先熟记所用计算机的所有指令和指令的涵义,指令又多又难记。
  • 编出的程序全是些0和1的指令代码,可读性差,还容易出错。
  • 因为机器语言是直接对硬件产生做用的,对硬件的依赖性很强,所以不一样型号计算机的机器语言又不同。也就是说,若是2台不一样型号的机器想实现同样的功能,须要编写2套彻底不一样的代码。

能够看出,机器语言很难掌握和推广,如今除了计算机生产厂家的专业人员外,绝大多数的程序员已经再也不去学习机器语言了。学习

 

2.汇编语言

1> 什么是汇编语言

  • 因为机器语言的种种弊端,严重影响开发效率,后面就出现了汇编语言。汇编语言其实就是符号化的机器语言,它用一个符号(英文单词、数字)来表明一条机器指令。好比,在机器语言中,用1011011000000000这条指令,是让计算机进行一次加法运算;而在汇编语言中,用英文单词“ADD”就能够表示加法运算。一个有意义的英文单词,很明显比一串又臭又长的二进制指令,直观好记多了。
  • 因为计算机只能识别0和1,用汇编语言编写的代码是不能被计算机所识别的,像刚才的“ADD”,计算机确定不知道是什么意思。所以,用汇编语言编写的代码须要翻译成二进制指令后,才能被计算机识别。这个翻译的工做交给“编译器”去作。

 

2> 优势

  • 对比机器语言,汇编语言的代码可读性好
  • 汇编语言能像机器语言同样,能够直接访问、控制计算机的各类硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,能够访问全部可以被访问的软、硬件资源。
  • 目标代码简短(目标代码就是经编译器翻译事后的二进制代码),占用内存少,执行速度快。(计算机中全部程序的运行都是在内存中进行的,所以内存的性能对计算机的影响很是大。其做用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU就会把须要运算的数据调到内存中进行运算,当运算完成后CPU再将结果传送出来,内存的运行也决定了计算机的稳定运行。)计算机的内存是有限的,所以一个应用程序运行时所占用的内存越少越好。

 

3> 缺点

  • 汇编语言是面向机器的,一般是为特定的计算机或系列计算机专门设计的。所以,不一样的机器有不一样的汇编语言语法和编译器,代码缺少可移植性,也就是说,一个程序只能在一种机器上运行,换到其余机器上就不能运行。
  • 汇编语言的符号很是多、难记,即便是完成简单的功能也须要大量的汇编语言代码,很容易产生BUG,难于调试
  • 使用汇编语言必须对硬件很是了解,开发效率很低,周期长且单调

 

3.高级语言

因为汇编语言依赖于硬件,代码可移植性差,符号又多又难记,因而人类就发明了很是接近天然语言的高级语言。后面要学习的C语言就是高级语言。操作系统

1> 优势

  • 简单、易用、易于理解,语法和结构相似于普通英文,且远离对硬件的直接操做,使得通常人通过学习以后均可以编程,而不用太熟悉硬件知识
  • 写出来的程序更加简洁。好比要计算2个数的和,在高级语言中能够写得很是简洁:d=a+b;。可是在机器语言和汇编语言中,就须要几条甚至几十条指令,并且不一样机器还要编写不一样的指令代码
  • 用高级语言编写的同一个程序还能够在不一样的机器上运行,具备可移植性

 

2> 注意

用高级语言编写的程序不能直接被计算机识别,须要经编译器翻译成二进制指令后,才能运行到计算机上

 

3、C语言简史

  • C语言于1972年发明,首次使用是用于重写UINX操做系统(UNIX之前主要是用汇编语言写的,它奠基了操做系统的基础)
  • 随着UNIX操做系统的成功,C语言也获得了大幅度地推广,被前后使用到大、中、小、微型主机上,至今仍是世界上最流行、使用最普遍的高级程序设计语言之一
  • C语言是一门面向过程的语言,非面向对象的语言。(究竟什么是面向过程、面向对象,暂时不用去理解,只须要知道C语言是面向过程就Ok了)

下面是2013年3月份的编程语言热门排行榜

从C语言诞生至今,它的热度一点也没减过,前两名基本上都是Java和C

 

4、C语言的特色

1.丰富的运算符

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

 

2.丰富的数据类型

  • C语言的生命力之因此如何强大,很大一部分是由于它拥有丰富的数据类型。
  • 正由于C语言数据类型丰富,运算能力极强,所以不少数据库都是用C语言编写的,好比DB二、Oracle等。

 

3.能够直接操做硬件 

跟汇编语言同样,C语言能够直接操做硬件,容许直接对位、字节、地址进行操做(位、字节、地址是计算机最基本的工做单元),能够说几乎没有C语言作不了的事情。

 

4.高效率的目标代码

目标代码,就是经编译器翻译后的二进制代码。C语言的目标代码执行效率很是高。

 

5.可移植性好

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

 

上面所说的都是C语言的优势,它有个很是明显的缺点:语法限制不严格。这样就致使初学者对C语言语法不能理解得很透彻,并且在开发过程当中也会带来不少容易忽略的问题。 

 

5、C语言的做用

  • 因为C语言具备强大的数据处理能力,并且容许直接访问内存地址,直接对硬件操做,所以它适于编写系统软件、图形处理、单片机程序、嵌入式系统开发甚至是用于科研。
  • 颇有游戏外挂都是用C语言写的
  • 不少操做系统的底层都是用C语言写的,好比android 

 

6、C语言的版本问题

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

相关文章
相关标签/搜索