C语言从入门到精通(第5版)
上QQ阅读APP看书,第一时间看更新

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程序在控制台中输出一个田字格图案。运行效果如下:(提示:可以使用搜狗输入法中的字符画)