下面分析一下上面的实例程序。
#include指令
实例代码中的第1行:
#include<stdio.h>
这个语句的功能是进行有关的预处理操作。include称为文件包含命令;后面尖括号中的内容,称为头部文件或首文件。有关预处理的内容,本书在将会在第14堂课中进行详细的讲解,此处读者只需要先对此概念有所了解即可。
空行
实例代码中的第2行。
C语言是一个灵活性较强的语言,所以格式并不是固定不变、拘于一格的,也就是说空格、空行、跳格并不会影响程序。这个时候有读者就会问:“为什么要有这些多余的空格和空行呢?”其实这就像生活中在纸上写字一样,虽然拿来一张白纸就可以在上面写字,但是还会在纸的上面印上一行一行的方格或段落、隔开每一段文字,为的就是美观和规范。合理、恰当地使用这些空格、空行,可以使编写出来的程序更加规范,对日后的阅读和整理有着重要的作用。所以在此也提醒读者在写程序时,最好将程序写得规范、干净,否则就是再好的程序也没有心情去看。
注意:不是所有的空格都是没有用的,例如,在两个关键字之间被空格隔开(else if),这种情况下如果将空格去掉的话,程序是不能通过编译的。
main函数声明
实例代码中的第3行:
int main()
这一行代码代表的意思是声明main()函数为一个返回值为整型的函数。其中的int叫做关键字,这个关键字代表的类型是整型。关于数据类型会在本书的第2堂课进行讲解,函数的内容会在本书的第9堂课进行详细的介绍。
在函数中,这一部分叫做函数头部分。在每一个程序中都会有一个main函数,它是一个程序的入口部分,也就是说程序都是从main函数头开始执行的,然后进入到main函数中,执行main函数中的内容。
函数体
实例代码中的第4~7行代码:
{
printf("Hello,world! I'm coming!\n"); /*输出要显示的字符串*/
return 0; /*程序返回0*/
}
在上面介绍main函数时,提到了一个名词叫做“函数头”,大家通过这个词可以联想一下,既然有函数头,那也应该有函数的身体吧?没错,一个函数分为两个部分:函数头和函数体。
程序代码中第4行和第7行的两个大括号就构成了函数体,函数体也可以称为函数的语句块。在函数体中,第5行和第6行就是函数体中要执行的内容。
执行语句
实例代码中的第5行:
printf("Hello,world!I'm coming!\n"); /*输出要显示的字符串*/
执行语句就是函数体中要执行的动作内容。这一行代码是这个简单的例子中最复杂的一句,但其实也不难理解,printf是产生格式化输出的函数,可以简单地理解为向控制台输出文字或符号。在括号中的内容称为函数的参数,括号内可以看到输出的字符串“Hello,world!I'm coming!”,其中“\n”称为转义字符(会在本书的第2堂课中有所介绍)。
return语句
实例代码的第6行:
return 0;
这行语句告诉main函数终止运行,并向操作系统返回一个整型常量0。前面介绍main函数会返回一个整型返回值,此时的0就是要返回的整型值。在此处可以将return理解成main函数的结束标志。
代码的注释
在程序的第5行和第6行后面都可以看到有一段关于这行代码的文字描述:
printf("Hello,world! I'm coming!\n"); /*输出要显示的字符串*/
return 0; /*程序返回0*/
这段对代码的解释描述称为代码的注释。代码注释的作用就是对代码进行解释说明,为日后的阅读或者他人阅读源程序提供方便。语法格式如下:
/*其中为注释内容*/
说明:虽然没有强行规定程序中一定要写注释,但是为程序代码写注释是一个良好的习惯,这会为以后查看代码带来很大方便。并且如果程序交给别人看,他人便可以快速掌握程序的思想与代码的作用。所以养成编写良好的代码格式规范和添加详细的注释习惯,是一个优秀程序员应该具备的素质。