1.3 一个简单的C程序
下面通过一个简单的实例来看看C语言程序是什么样的。为了便于讲解,实例代码中专门标注了行号(真实程序中这些行号是不存在的)。
【例1.1】输出一行语句(实例位置:资源包\TM\sl\01\01)
本实例程序的功能是显示一条信息“Welcome to MingRi”,通过这个程序可以初窥C程序的样貌。虽然这个简单的小程序只有7行,却充分说明了C程序是由什么位置开始、什么位置结束的。
运行程序,显示效果如图1.1所示。
图1.1 一个简单的C程序
1.#include指令
实例代码的第1行是一个编译预处理命令,声明了在程序编译之前要预先处理的内容。
其中,include称为文件包含命令,后面尖括号中的内容称为头文件或首文件。本行代码的作用是声明本段代码已包含标准输入/输出库函数stdio,后续可直接调用,不需要用户再进行定义。有关预处理的内容,将会在第13章中进行详细讲解,在此读者只需对相关概念有所了解即可。
2.空行
实例代码的第2行是一个空行。
C语言是一个相对灵活的语言,格式并不是固定不变的。也就是说,空格、空行、跳格并不会影响程序的运行。有的读者会问:为什么要有这么多空格和空行呢?其实这就像生活中在纸上写字一样,虽然拿来一张白纸就可以在上面写字,但是通常还会在纸上印上一行一行的方格或段落,隔开每一段文字,使书写更加美观和规范。合理、恰当地使用这些空格、空行,可以使编写出来的程序更加规范、干净和易于阅读。
注意
并不是所有的空格都没用。比如,两个关键字之间要用空格隔开(else if),这种情况下如果将空格去掉,程序就不能通过编译。这里大家有个感性认识就好,在后续的学习中可以慢慢领悟。
3.main函数声明
实例代码的第3行如下:
本行代码的作用是声明main函数有一个整型返回值。其中的int称为关键字,该关键字代表的类型是整型。关于数据类型的内容将在第3章中讲解,关于函数的内容将在第9章中讲解。
函数中,这一部分称为函数头部分。每个C程序都必须有一个main函数,表示程序的入口部分。也就是说,程序都是从main函数头开始执行的,然后进入main函数体中,执行其中的代码块。
4.函数体
实例代码中的第4~7行如下:
上面介绍main函数时,提到了一个名词“函数头”。既然有函数头,是不是也应该有函数体呢?没错,一个函数通常就分为两个部分:一是函数头,二是函数体。
程序代码的第4行和第7行是两个大括号,这对大括号以及其中的语句块就构成了函数体。第5行和第6行语句就是函数体中要执行的内容。其中,printf函数就包含在标准输入/输出库文件stdio中,因为前面做了包含声明,所以这里开发者可以直接调用,进行字符串的输出操作。
5.执行语句
函数体中的第5行代码如下:
执行语句就是函数体中要执行的动作内容。本行代码是这个简单例子中最复杂的语句,但其实不难理解。printf是格式化输出函数,用于向控制台输出文字或符号。括号中的内容称为函数参数,这里可以看到要输出的字符串为“Welcome to MingRi”。其中还可以看到“\n”这样一个符号,称之为转义字符,其作用是实现换行。关于转义字符的内容将第3章中介绍。
特别需要注意的是,语句的结尾一定要添加英文分号。
6.return语句
函数体中的第6行代码:
本行语句使main函数终止运行,并向操作系统返回一个整型常量0。前面介绍main函数时,说过它需要返回一个整型值,这里0就是要返回的整型值。可以将return语句理解成main函数的结束标志。
7.代码注释
在多句程序代码后,均可以看到一段由“/*”“*/”括起来的文字描述。例如:
这段对代码的解释描述性文字称为代码注释,作用是为了他人能快速理解程序代码的含义和设计思想。注释内容包含在“/*”和“*/”之间,其语法格式如下:
/*其中为注释内容*/
注意
编写规范的代码格式和添加详细的注释,是一个优秀程序员应该具备的好习惯。
编程训练(答案位置:资源包\TM\sl\01\编程训练\)
训练1:打印经典语录 在控制台中输出马云在阿里巴巴上市时说的一句经典语录“梦想还是要有的,万一实现了呢!”。运行结果如下:
梦想还是要有的,万一实现了呢!
训练2:输出田字格图案 使用C程序在控制台中输出一个田字格图案。运行效果如下:(提示:可以使用搜狗输入法中的字符画)