分类: C/C++
2015-05-25 17:10:52
1. 什么是计算机程序
程序:一组计算机能识别和执行的指令。
2. 什么是计算机语言
机器语言:就是二进制代码。
机器指令:计算机能直接识别和接受的二进制代码。
机器语言:机器指令的集合。
符号语言:用一些英文字母和数字表示的一个指令,例如ADD代表“加”,SUB代表“减”等。(一般,一条符号语言的指令对应转换为一条机器指令。转换过程称为“代真”或“汇编”,因此,符号语言又称为符号汇编语言或汇编语言)
汇编程序:把符号语言的指令转换为机器指令。(不同型号的计算机的机器语言和汇编语言是互不通用的)
低级语言:贴近或离计算机很近的语言。
高级语言:对任何型号的计算机都适用(或只须作很少的修改),它与具体机器距离较远。
编译程序的软件把高级语言写的程序(称为源程序,source program)转换为机器指令的程序(称为目标程序,object program)。
3. C语言的主要特点
语言简洁、紧凑、使用方便、灵活。
运算符丰富。
数据类型丰富。
具又结构化的控制语句,是完全模块化和结构化的语言。
语法限制不太严格,程序设计自由度大。
C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
用C语言编写的程序可移植性好。
生成目标代码质量高,程序执行效率高。
源程序文件存储的是源程序
源程序是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件。
程序的编译过程可以分为预处理、编译、汇编三部分。(1)一个程序由一个或多个源程序文件组成。一个源程序文件可以包括3个部分:
a)
预处理指令:预处理指令以#号开头,并且#号必须是该行除了任何空白字符外的第一个字符。该指令将在编译器进行编译之前对源代码做某些转换。如#include
b) 全局声明:即在函数之外进行的数据声明。在函数外面声明的变量称为全局变量。如果是在程序开头(定义函数之前)声明的变量,则在整个源积程序文件范围内有效。在函数中声明的变量是局部变量,只在函数范围内有效。
c) 函数定义:每个函数用来实现一定的功能。在调用这些函数时,会完成函数定义的局部变量。
(2)函数是C程序的主要组成部分。程序的几乎全部工作都是由各个函数分别完成的,函数是C程序的基本单位,在设计良好的程序中,每个函数都用来实现一个或几个特定的功能。编写C程序的工作就是编写一个个函数。
一个C语言程是由一个或多个函数组成的,其中必须包含一个main函数(且只能有一个main函数)
一个小程序只包含一个源程序文件,在一个源程序文件中包含若干个函数(其中有一个main函数)。当程序规模较大时,所包含的函数的数量较多,如果把所有的函数都放在同一个源程序文件中,则此文件显得太大,不便于编译和调试。为了便于调试和管理,可以使一个程序包含若干个源程序文件,每个源程序文件又包含若干个函数。一个源程序文件就是一个程序模块,即将一个程序分成若干个程序模块。
在进行编译时是以源程序文件为对象进行的。在分别对各源程序文件进行编译并得到相应的目标程序后,再将这些目标程序链接成为一个统一的二进制的可执行程序。
C语言的这种特点使得容易实现程序的模块化。
在程序中被调用的函数,可以是系统提供的库函数,也可以是用户根据需要自己编译设计的函数。C的函数库十分丰富,ANSI C建议提供一百多个标准库函数,不同的C编译系统除了提供标准库函数外,还增加了其他一些专门的函数,如Turbo C提供三百多个库函数。不同编译系统所提供的库函数个数和功能是不完全相同的。
(3)一个函数包括两个部分。
1) 函数首部。即函数的第一行,包括函数名、函数类型、函数属性、函数参数(形式参数)名、参数类型。一个函数名后面必须跟一对圆括号,括号内写函数的参数名及其类型。如果函数没有参数,可以在括号中写void,也可以是空括号。
2) 函数体。即函数首部下面的花括号内的部分。如果在一个函数中包括有多层花括号,则最外层的一对花括号是函数体的范围。函数体一般包括一下两个部分:声明部分。声明部分包括:定义在本函数中国所用到的变量;对本函数所调用函数进行声明。执行部分。由若干个语句组成,指定在函数中所进行的操作。在某些情况下也可以没有声明部分,甚至可以即无声明部分业务执行部分。空函数什么也不做,但这是合法的。
(4)程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何。
(5)程序中对计算机的操作是由函数中的C语句完成的。(如赋值、输入输出数据由相应的C语句实现的)
(6)在每个数据声明和语句的最后必须有一个分号。
(7)C语言本身不提供输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的,C对输入输出实行“函数化,”由于输入输出操作涉及具体的计算机设备,把输入输出操作用库函数实现,就可以是C语言本身的规模较小,编译程序简单,很容易在各种机器上实现,程序具有可移植性。
(8)程序应当包含注释。
C语言允许用两种注释方式:
(1)以//开始的单行注释。这种注释可以单独占一行,也可以出现在一行中其他内容的右侧。此种注释的范围从//开始,以换行符结束。也就是这种注释不能跨行。如果注释内容一行内写不下,可以用多个单行注释,如下面两行是连续的注释行:
//如注释内容一行内写不下
//可以在下一行重新用“//”,然后继续写注释。
(2)以/*开始,以*/结束的块式注释。这种注释可以包含多行内容。它可以单独占一行(在行开头以/*开始,行末以*/结束),也可以包含多行。编译系统在发现一个/*后,会开始找注释结束符*/,把二者见的内容作为注释。
但应注意的是在字符串中的//和/*都不作为注释的开始。而是作为字符串的一部分。如:
Printf(“//how do you do!\n”); 或 printf(“/*how do you do!*/\n”);
输出分别是://how do you do!和 /*how do you do!*/
注释分析:在写C程序是应当多用注释,以方便自己和别人理解程序各部分的作用。在程序进行预编译处理时将每个注释替换为一个空格,因此在编译时注释部分不产生目标代码,注释对运行不起作用,注释只是给人看的,而不是让计算机执行的。注释可以用汉子或英文字符表示。