**一. 计算机和编程语言**
计算机语言
1.程序就是用编程语言写出来的让计算机怎么去做一件事情
2.编程语言不是让我们和计算机交谈而是告诉它怎么去做一件事情,描述要求它做一件事情的方法或过程
算法
1.我们让计算机做计算就需要找出计算的步骤,然后用编程语言写出来
2.计算机做的所有事情都是计算
3.计算的步骤就是算法
关于编程语言和计算机
计算机里的CPU可以直接运行人类编写的程序吗?为什么说编程语言不是和计算机交谈的语言?
不可以 计算机只可以读懂二进制语言,人类编译的语言需经过程序翻译成计算机语言,计算机才可以执行。(源于慕课中讨论区的解释)
程序的执行
1.解释:借助一个程序来理解你自己的程序,并且让计算机按照我的要求去执行。
我的程序交给一个程序,这个程序能理解你的程序,但是不会产生任何东西只是去做动作,下次运行时又需要这个能解释的程序。
2.借助一个程序,就像一个翻译,把你的程序翻译成计算机真正能懂得程序——机器语言——写的程序,然后计算机就按照这个机器语言程序执行。
把源代码交给翻译官,把我的程序翻译成计算机懂得程序,完成后程序没有执行,我需要让翻译后的程序来运行,这个程序运行后我才能得到我要的结果。
解释型语言和编译型语言
1.任何一种编程语言既可以编译执行也可以解释执行,只是传统和习惯的区别
2.常用的执行方式而已
3.语言没有解释和编译之分,只是它具体的执行方式而已
4.解释型语言有特殊的计算能力
5.编译型语言有确定的运算性能
有的编程语言,源代码经过编译后形成目标代码,但是这样的目标代码不能直接在CPU上执行,而是需要由一个仿真器程序来解释执行。这样的执行方式是编译的还是解释的?
源代码经过编译以后形成的目标文件是确定的,除非修改源代码重新编译。
仿真器程序解释执行的不是源代码,而是目标代码。解释执行的过程中是不产生文件的,编译执行产生的文件可以直接让计算机执行。虽然中间有编译的过程,但实质上还是解释执行的。(源于慕课中讨论区的解释)
**二.C语言**
现代的编程语言在语法上差异很小
几乎都是c like语言
c语言份额很多
语言的能力、适用领域主要是由库和传统所决定的
C语言
-
C语言是从B语言发展过来的,B语言是由BCPL发展来的,BCPL是由FORTRAN发展来的
2.B语言和BCPL都支持指针间接方式,所以C也支持
3.C语言还受了PL/l的影响,还和PDP-11的机器语言有很大关系
4.1973年3月,第三版的Unix上出现了C语言的编译器
5.1973年11月,第四版的Unix(System Four)发布了,这个版本是完全用C语言重新写的C语言的发展与版本-标准
1.1989年 ANSI发布了一个标准——ANSI C
2.1990年ISO接受了 ANSI的标准——C89
3.C的标准在1995年和1999年两次更新——C95和C99
4.所以的当代编译器都支持C99了
**第一个程序**
四则运算
我们是在学习GCC吗?
常听到有人说他学的是Visual C,有人学的是Turbo C,不是我们学的什么Dev C,是他们的比我们的高级吗?还有GCC到底是什么?
不是,GCC(GNU Compiler Collection,GNU编译器套件),是由 GNU
开发的编程语言编译器。它是以GPL许可证所发行的自由软件,也是
GNU计划的关键部分。GCC原本作为GNU操作系统的官方编译器,现已被大多数类Unix操作系统(如Linux、BSD、Mac OS
X等)采纳为标准的编译器,GCC同样适用于微软的Windows。
GCC是自由软件过程发展中的著名例子,由自由软件基金会以GPL协议发布。GCC是一种编译器,visual
C也是一种编译器上面编译运行的C语言。Turbo C,Dev
C等都分别指的是在不同的编译器上运行的C语言,其本质是相同的,但具体的语法规则会有细微的不同。都是不同的c语言的编译器而已,没有更高级。(源于慕课讨论区)
main()的样子
为什么看到有的书上的main()是void main(),而我们课件上是int main()?还有main()里面那句return 0;是必须的吗?
函数名main前面的void或者int表示的是函数类型,也决定了返回值(通过函数中的return语句返回的值)的类型。 当函数类型为int时,函数类型为“整型”,必须返回一个int类型的数据,可以是0可以是100000,只要是int类型的就可以。 当函数类型为void类型,即函数类型为“空类型”,那么函数不能提供返回值,只能写“ return; ”或者不写return语句。而不能返回一个int型或其他类型的数据。(源于慕课讨论区)



