2.1第一个C程序
读者对C语言程序编译环境的基本安装和配置已经有所了解了,下面介绍第一个C语言程序,初步了解C语言中常用术语及程序代码的构成。第一个C程序要实现的是求两个整数的和,下面将详细介绍这样一个简单的数学求和如何在C语言中实现。
第一个C语言程序:求两数之和。
01#include
/*命令行*/02main()/*主函数*/03{04inta;/*定义一个整型变量a*/05intb;/*定义一个整型变量b*/06intsum;/*定义一个整型变量sum*/07a=2;/*给a赋值,把2赋给变量a*/08b=3;/*给b赋值,把3赋给变量b*/09sum=a+b;/*求a与b的和,并赋值给sum*/10printf("a=%d,b=%d\na+b=%d",a,b,sum);/*输出结果到屏幕上*/11}
代码说明:
这是一个C程序,即用C语言编写的程序。为了方面解释,对程序的每一行都加一个行号,即每一行前面的编号,表示此行代码所在的行数,在实际程序编写过程中是不需要写的。
第02~11行是一个函数,第02行main是“函数名”,后面加一对小括号。第03~11行是函数体,用一对花括号包起来,称作为“函数体”。函数体里面,第04~06行是声明定义部分,第07~10行是执行部分。
第01行,这是一个命令行,表示程序中包含(include)了一个“stdio.h”文件,该文件指的是“standardinputoutput”标准输入输出,“h”指的是“head”头文件。这一行与第10行一般情况下是相对应存在的。只要程序中使用了printf,在程序最上面一般都要加上本程序中的第01行。具体原因在本书的第22章会有详细介绍。
第02行,这一行中有一个关键词main,后面还带有一对圆括号。在C语言中称之为“主函数”,或者叫“main函数”。因为是“主”的意思,所以在每个程序中必须有且只有一个主函数,而且在运行时程序总是从主函数开始执行的。
第04~06行是一个定义部分。int是整数“integer”的缩写,表示类型。而a、b、sum三个是取的名字,称为“变量名”,当然这里变量名可以取成其他名字,如x,y都可以。
第07~09行是一个赋值过程,C语言中的“=”并不表示数学意义上的“等于”,而是代表赋值,如“a=2”就是表示将数值2赋给变量a,这样a的值就是2了。相同的,第08行指b的值就是3了,第09行就是将a+b的和赋给sum。C语言中的“等号”是用符号“==”表示。第10行是一个输出过程,用printf来实现,作用是将结果输出到屏幕上,以便看到程序的结果。
仔细观察整个函数体,可以发现每一行程序后都有一个“;”分号,用来表示这句结束,加了分号之后这就是一个语句。在函数体中每个语句后都要加上分号,即使是最后一句。但是第01行后面是不需要加“;”分号的,因为它是一个命令行,而不是一个语句。
还有就是在一些语句的同一行后面会有一些说明性的文字,用“/*……*/”来标记,这表示这个符号之间的所有部分都表示程序的注释部分,是为了帮助读者理解程序的。这对程序是不起作用的,对程序运行没有影响。2.2C语言的后缀名
用C语言编写程序称为C语言源程序,简称C程序。C语言源程序文件后缀名是“.c”,C语言是一种高级语言,计算机需要把它转化成只由0和1组成的代码,所以这里需要执行“编译”的过程,将C程序编译成“目标程序”,后缀名为“.obj”。然后目标程序输入内存,与系统的库函数连接,得到“可执行的目标程序”,后缀名为“.exe”。最后再将可执行的目标程序调入运行。
这里选用的编译环境是TurboC++或是VisualC++6.0,虽然保存后缀名为“.c”的文件也可以在C++编译环境下编译,但是C语言与C++语言还是存在一定区别的。将编写的程序保存成“.c”文件在TurboC++或VC++6.0中都可以运行。但是为区别起见,本书还是规定所有程序的文件后缀名都定为“.cpp”。2.3C语言的上机步骤
在编写第一个C语言源程序后,就有了源程序,这当然不够。这个源程序该如何在计算机上运行呢?如何在前面介绍的TurboC环境中调试运行,要先了解C源程序在计算机上运行的步骤。
2.3.1程序运行流程
编写运行一个程序,要经过几个步骤,即输入源程序编译源程序与库函数连接运行可执行的目标程序。具体流程如图2-1所示。