[C语言程序设计]程序设计和C语言

    选择打赏方式

复习下C语言,这本书大多被作为教程,且争议挺大的,就简单再看一下,很早之前看过 ,不是很喜欢谭浩强的代码风格,讲解也过于啰嗦。

但是还是再看一下,真香。。。 其中有些毫无意义的章节我会忽略掉,就这样。


1.1 什么是计算机程序

程序,就是一组计算机能识别和执行的指令。每一条指令使计算机执行特定的操作。只要让计算机执行这个程序,计算机就会“自动地”执行各条指令,有条不紊地进行工作。一个特定的指令序列,用来完成一定的功能。


1.2 什么是计算机语言

机器语言

计算机工作基于二进制,从根本上说,计算机只能识别和接受由0和1组成的指令。

在计算机发展的初期,一般计算机的指令长度为16,即以16个二进制数(0或1)组成一条指令,16个0和1可以组成各种排列组合。

例如,用1011011000000000让计算机进行一次加法运算。

人要使计算机知道和执行自己的意图,就要编写许多条由0和1组成的指令。然后要用纸带穿孔机以人工的方法在特制的黑色纸带上穿孔,在指定的位置上有孔代表1,无孔代表0。一个程序往往需要一卷长长的纸带。在需要运行此程序时就将此纸带装在光电输入机上,当光电输入机从纸带读入信息时,有孔处产生一个电脉冲,指令变成电信号,让计算机执行各种操作。

这种计算机能直接识别和接受的二进制代码称为机器指令(machine instruction)。

机器指令的集合就是该计算机的机器语言(machine language)。


汇编语言


在汇编语言中,用助记符(Mnemonics)代替机器指令的操作码,用地址符号(Symbol)或标号(Label)代替指令或操作数的地址。在不同的设备中,汇编语言对应着不同的机器语言指令集,通过汇编过程转换成机器指令。普遍地说,特定的汇编语言和特定的机器语言指令集是一一对应的,不同平台之间不可直接移植。


如:

ADD EAX,1    //将EAX寄存器的值+1


高级语言

为了克服低级语言的缺点,20世纪50年代创造出了第一个计算机高级语言——FORTRAN语言。它很接近于人们习惯使用的自然语言和数学语言。程序中用到的语句和指令是用英文单词表示的,程序中所用的运算符和运算表达式和人们日常所用的数学式子差不多,很容易理解。程序运行的结果用英文和数字输出,十分方便。例如在FORTRAN 语言程序中,想计算和输出3.5×6sin(x/3),只须写出下面这样一个语句:
PRINT*,3.5*6*SIN(3.1415926/3)即可得到计算结果。

高级语言不依赖于具体机器,用它写出的程序对任何型号的计算机都适用(或只须作很少的修改),它与具体机器距离较远,故称为计算机高级语言(high level language)。
当然,计算机也是不能直接识别高级语言程序的,也要进行“翻译”。用一种称为编译程序的软件把用高级语言写的程序(称为源程序,source program)转换为机器指令的程序(称为目标程序,object program),然后让计算机执行机器指令程序,最后得到结果。高级语言的一个语句往往对应多条机器指令。


个人理解:

CPU只能识别机器码,机器码为二进制数据,但是人类极难理解和使用。

汇编语言是为了更好的让程序员理解和编写程序,将二进制机器码翻译为人类可以看懂的仿英文形式的汇编指令。

如 ADD SUB MOV CALL JMP等等,都是英文或者英文的缩写,然后再由编译器翻译成机器语言给CPU执行。

而高级语言则是把汇编代码抽象化。

如i=5,汇编指令可能为 mov eax,5    mov [ebp+4],eax

高级语言更加接近于英语,因为代码做了抽象化,不用再考虑目标机器的平台和指令集,由高级语言的编译器进行自动化处理。


1.4 最简单的C语言程序

例1.1要求在屏幕上输出以下一行信息。

This is a C program.


# include <stdio.h>

int main(void)
{
printf("This is a C program.");
getchar();
return 0;
}

1.png



版权声明:若无特殊注明,本文皆为《 8964CN 》原创,转载请保留文章出处。
本文链接:[C语言程序设计]程序设计和C语言 http://www.8964cn.net/?post=44
正文到此结束

热门推荐

发表吐槽

你肿么看?

你还可以输入 250 / 250 个字

嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗 胜利 不高兴 阴险 乖 酷 滑稽

评论信息框

吃奶的力气提交吐槽中...


既然没有吐槽,那就赶紧抢沙发吧!