2.1.1 两个简单的C程序
在第1章中,已经认识了第一个C程序“Hello, world!”,知道了C程序都会有一个main函数,也知道了C程序简单的执行过程。但是,对于该程序的讲解十分简略。本节将再通过两个简单的程序使读者了解C程序更多的特点,建立起C程序更丰满的轮廓。
注意:在本节中,读者会看到很多新鲜的C语言专用名词,但是请不必查阅每个名词的意思,只需有个大概的印象即可。本节抛出这些新名词的用意也只是让读者有个初步的印象,本节出现的名词在后面的章节都会详细地讨论。
【范例2-1】输出一个正方形,实现方法如示例代码2-1所示。
示例代码2-1
01 #include <stdio.h> /* 包含文件 */ 02 /* 空行 */ 03 int main(void) { /* main函数的声明,下面都为main函数的函数体 */ 04 /* 使用printf语句逐行输出正方形 */ 05 printf("* * * * *\n"); /* 输出第1行 */ 06 printf("* *\n"); /* 输出第2行 */ 07 printf("* *\n"); /* 输出第3行 */ 08 printf("* *\n"); /* 输出第4行 */ 09 printf("* * * * *\n"); /* 输出第5行 */ 10 /* 空行 */ 11 return 0; /* 返回语句 */ 12 }
【运行结果】程序运行后,得到输出结果如图2-1所示。
图2-1 输出正方形的结果
【代码解析】本程序实现了打印出一个正方形的功能。
· 第5~9行是函数体的内容,是程序功能的实现主体。每一行都是一个函数调用语句,调用了printf函数,其功能为打印字串。第5行打印的字串内容为“* * * * *\n”,这个字串输出到屏幕时会将其中的\n处理为换行,其余字符按原样输出。最后打印的结果如图2-1的第1行所示。第6~9行打印的结果分别如图2-1中第2~5行所示。
· 第10行与第2行一样,也是一个空行。同样也是为了隔开功能不同的两个程序段而设置的。
警告:C99标准规定无形参的main函数的声明要写为“int main(void)”,且要有“return 0;”语句。在第10章函数中会介绍一种带形参的main函数声明。
【范例2-2】本范例简单地展示了C语言中一些操作符、变量和数据类型,实现方法如示例代码2-2所示。
示例代码2-2
01 #include <stdio.h> /* 包含文件 */ 02 /* 空行 */ 03 int main(void) { /* main函数声明 */ 04 /* 定义两个整型变量 */ 05 int a = 3; /* 定义并初始化a */ 06 int b = 7; /* 定义并初始化b */ 07 08 /* 定义两个浮点型变量 */ 09 double c = 2.4; /* 定义并初始化c */ 10 double d = 7.4; /* 定义并初始化d */ 11 12 /* 使用操作符进行计算 */ 13 b = b + a; /* 对b赋值 */ 14 d = c * d; /* 对d赋值 */ 15 16 /* 输出各个变量的值 */ 17 printf("a = %d\n", a); /* 输出a的值 */ 18 printf("b = %d\n", b); /* 输出b的值 */ 19 printf("c = %d\n", c); /* 输出c的值 */ 20 printf("d = %f\n", d); /* 输出d的值 */ 21 22 return 0; 23 }
【运行结果】本程序的运行结果如图2-2所示。
图2-2 C语言简单范例的运行结果
【代码解析】本程序定义了几个变量,在对它们做简单操作后使用printf函数输出其值。
· 第9行和第10行定义了两个double型变量c和d,并分别赋值为2.4和7.4,其中,2.4和7.4为两个double型常量。
· 第17行~20行的功能为调用printf函数,输出4个变量的值,在这里printf函数用字符串外的数值替换字符串中的内容后输出,其输出结果如图2-2所示。
· 第4、8、12行和第16行都是注释语句,用来说明其后C语句的简要功能,以提高程序可读性。
范例2-1和范例2-2一样,都是简单的顺序结构。