要想学习C语言我们首先就要明白它是怎么来的?
人与人之间的交流需要通过语言。中国人之间用汉语,英国人用英语,俄罗斯人用俄语,等等。相对的,与计算机交流信息也需要一种语言。为此人们创造出一种计算机和人能够识别的语言,那是便是计算机语言。
一开始的计算机语言是机器语言是基于二进制,从根本上说的只能接受0和1组成的指令。这种低级语言在我们的日常生活也是常见的,如我们如想点亮一个灯泡必然要给它的正负极通上电压电流,而正极输入的高电平对应机器指令的1码,负极极输入的低电平对应机器指令的0码。
开关断开时小灯的正负极都是低电平为0码,小灯熄灭。
开关闭合时小灯的正极为1码负极为0码,小灯点亮。
这便是最简单的机器指令了,把多个指令通过打孔在纸带的方式形成早期的机器指令集程序控制机器。纸带上的孔代表1码,无孔代表0码。在需要的运行此程序的纸带装在光电输入机上,当光电输入机从纸带读入信息时,有孔处产生一个电脉冲,指令变成电信号,让计算机执行各个操作。
但是机器语言与人们习惯用的语言差别太大,难学,难写,难记,难检查,难修改,难推广使用,因此初期只有极少数的计算机专业人员会编写计算机程序。
符号语言 为了克服机器语言的上述缺点,人们创造出符号语言它用一些英文字母和数字表示一个指令,例如用 ADD 代表“加”,SUB 代表“减”,LD代“传送”等。如上面介绍的那条机器指令可以改用符号指令代替:
(执行 A+B-A,将寄存器A 中的数与寄存器B中的数相加,到存器A中ADD A.B
显然,计算机并不能直接识别和执行符号语言的指令,需要用一种称为汇编程序的一般,一条符号语言的指令对应转换为一条机软件把符号语言的指令转换为机器指令。转换的过程称为“代真”或“汇编”,因此,符号语言又称为符号汇编语言(symboliassembler language)或汇编语言(assembler language)
虽然汇编语言比机器语言简单好记一些,但仍然难以普及,只在专业人员中使用。不同型号的计算机的机器语言和汇编语言是互不通用的。用甲机器的机器语言编写的程序在乙机器上不能使用。机器语言和汇编语言是完全依赖于具体机器特性的,是面向机器的语言。由于它“贴近”计算机,或者说离计算机“很近”,故称为计算机低级语言。
高级语言 为了克服低级语言的缺点,20 世纪 50 年代创造出了第一个计算机高级语言-一FORTRAN语言。它很接近于人们习惯使用的自然语言和数学语言。程序中用到的语句和指令是用英文单词表示的,程序中所用的运算符和运算表达式和人们日常所用的数学式子差不多,很容易理解。程序运行的结果用英文和数字输出。
而计算机高级语言写出来的程序是不能直接被识别的,因此用一种称为编译程序的软件把用高级语言写的程序(称为源程序(source program))转换为机器指令的程序(称为目标程序(object program)),然后让计算机执行机器指令程序,最后得到结果。高级语言的一个语句往往对应多条机器指令。
最后演变出来的高级计算机语言的C语言便诞生了,它是面向过程的编程语言
面向过程:从名字可以看出它是注重过程的。当解决一个问题的时候,面向过程会把事情拆分成: 一个个函数和数据(用于方法的参数) 。然后按照一定的顺序,执行完这些方法(每个方法看作一个过程),等方法执行完了,事情就搞定了。