1 为什么从Hello World开始?
如您所见,本文将从Hello World开始,编写您的第一个C语言程序。为什么从Hello World开始呢?这其实是编程语言的一个惯例。让我们回顾一下,C语言是一门非常古老的语言,由丹尼斯·里奇(Dennis Ritchie)在20世纪70年代早期于贝尔实验室开发。他撰写了第一本C语言教材《The C Programming Language》,在这本书中第一个示例程序就是在屏幕上输出“Hello World”。因此,之后的大部分编程教程都遵照这一传统。
2 Hello World
让我们开始编写Hello World程序吧!
首先打开一个C语言网页在线编辑器,本文打开的是菜鸟工具。打开之后您会发现,网页端已经为您生成了Hello World程序。您可以选择清空按钮,自己输入程序(我极力推荐自己动手输入的方式,因为这样会加深您的印象)。在左侧的输入框,输入以下程序:
#include <stdio.h>
int main()
{
printf("Hello, World! \n");
return 0;
}
然后点击运行按钮,您会惊喜地发现,右侧输出框打印出了“Hello, World!"!
3 C语言的程序结构
上一小节您实现了您的第一个C语言程序,这足够让人振奋心情!这一小节我们将进一步讨论一下Hello World程序。
3.1 预处理指令
#include <stdio.h>
首先来看第一行,这一行称为预处理指令。每个C程序都可以从预处理器指令开始,这是一些特殊的指令,告诉编译器在实际编译之前需要进行的操作。最常见的预处理器指令是#include
,它用于包含标准库或用户定义的头文件。以"#"开始,include
关键字是告诉C语言编译器,我们的程序将包含什么样的头文件。这里出现了两个新的名词,编译器和头文件。
编译器
我们来介绍一下什么是编译器。您还记得上一篇文章(准备工作)中的高级语言和机器语言吗?不记得也没关系,您可以回顾一下上一篇文章。我们知道,程序员使用的语言是高级语言,而机器使用的语言是机器语言,这是两种不同的语言。那么,程序员用高级语言编写的程序,是如何被计算机所理解的呢?没错。程序员所编写的程序将会通过编译器转换为机器所能理解的机器语言,转换的过程叫做编译。
头文件
头文件是程序员已经预先写好的一些代码,实现了某些功能,当我们想要使用这些功能时,只需要在代码的开头引用它们。我们已经认识了stdio.h
头文件,它是编译器自带的头文件,能够为我们提供将"hello world"这样的字母打印到屏幕上的功能。
3.2 主函数
int main()
{
}
C程序的执行从main
函数开始。main
函数是程序的入口点,它必须被定义在每个程序中。您也许注意到,main函数中的两条语句被括号包裹了,{}
的作用是表示代码块的开始和结束。代码块是一组一起执行的语句,它们在逻辑上被组织在一起。C语言会按照从上至下的顺序执行main
函数中被{}
包裹的语句。
printf("Hello, World! \n");
这条语句执行了我们想要实现的功能,printf
来自于stdio.h
头文件,实现的功能是将()
中的"hello world"打印在屏幕上,\n
代表换行符,在打印完成之后将光标换一行。
return 0;
在C语言中,return
语句用于从函数返回一个值。当 return
语句在 main
函数中使用时,它表示程序正常结束并返回一个状态码给操作系统。return 0;
通常表示程序成功完成,没有错误。
4 总结
本文以一个简单的hello world
程序介绍了C语言的结构。让我们来总结一下,hello world
的结构可以简单地概括为:“头文件->主函数->执行语句->返回值”。
事实上,C语言程序的结构通常比简单的“头文件->主函数->执行语句->返回值”更为复杂和详细,但这个概括在某种程度上可以作为理解C语言程序基本组成部分的一个起点。