还记得上一篇文章里的hello world吗?
现在让我们以它为例,学习c程序的基本结构。
下面是昨天那个程序
#include <stdio.h> #include <stdlib.h> int main(void) { printf("Hello world!\n"); return 0; }
这里要说一下,如何复制文章中的代码
请用你的鼠标在代码区双击,你会发现所有的代码已经被选中,这时你可以按ctrl+c或者右键复制它
首先来看第一行和第二行
在小于号前面的内容的是一样的,首先是一个#,然后是include(包含),
通过英文我们可以猜出,这两句肯定是用来包含某些东西的。后面的stdio.h还有stdlib.h,它们看起来像一个文件。
没错,这个命令的作用就是包含一个文件,什么叫包含?不过是把include这个命令的位置替换为stdio.h这个文件里面的内容罢了。
你可能会问到,为什么要包含这两个文件?这个问题现在不必搞清楚。现在我们只需要知道写程序要在最前面加上这两句就行了。下面是这两个文件文件名的意义,不要死记硬背哦
- stdio Standard Input Output 标准输入输出
- stdlib Standard library 标准库
至于.h这个后缀怎么来的?h就是header(头)的第一个字母,像这样的文件我们把它叫做头文件
头文件里定义了很多东西,我们将在后面讲到。这个程序中使用的头文件是标准规定的(就是说任何一个符合标准的c语言编译器都应该提供这个文件)。它的位置就在编译器的相关目录内。
第四行是int main()
这是一个函数(可不要把它和数学里的函数搞混淆了),main是主要的意思,翻译成中文也就是主函数。
程序的执行必须有一个起点,这个起点就像是一个入口,由这个入口可以进入的整个程序这个“大房间”。就像你进入一个房间,需要有一个门(你当然可以翻窗户),main就是这个门。计算机在运行程序时就会从这个函数开始执行。
什么是函数?
可不要被函数这个东西吓到了。它和数学里面的一次函数、指数函数是完全不同的两个东西。程序里的函数和数学里的函数的英文都是function,你可能知道function还有“功能” 的意思,这个或许更像编程中的函数。一个函数可以完成一种或多种功能(一个函数完成一个功能就足够了)。
函数可以由你自己写,也可以别人提供函数,你来使用(使用一个函数叫做“调用”)
现在不需要明白函数怎么玩,那是后面的事情。你需要知道一个c程序必须包含main函数,否则他就不是一个完整的程序!
至于int是什么意思?int就是Integer(整型)的缩写
我们现在不用知道int的作用,你只需要记住int main这种写法。
(部分书上介绍的是void main或只写main的写法,这两种写法都是不标准的,就是说在其他的编译器上可能不能成功编译)
在第五行和第八行分别有一个正(大)括号和反括号
他说明这个括号内的东西都是main这个函数里的。
第六行有一个printf,你可能根据运行的结果猜出来这个东西是用来输出文字的。
没错,printf前面的print就是打印的意思,打印在哪儿?当然是屏幕上啊!最后面f的意思是format,即“格式”,printf是格式化输出函数,因为它能按照我们要求的格式在屏幕上输出文字。
printf是一个输出函数,它的详细使用方法我们将在后面讨论。
在这个程序中,我们并没有书写任何关于printf这个函数的信息(除了第六行的一次调用),那么这个函数是哪儿来的呢?
没错,他就存在于头文件中。printf属于标准库函数,就是说它的代码是别人已经写好了的,我们可以直接使用它。
最后,是一个return,return是返回的意思。返回,还能干嘛?自然是退出咯
程序执行到return就会退出了。后面的0代表这个程序正常退出
因为我们没有使用程序的返回值,所以你可以返回任意一个整数,它并不会影响程序执行。
详细的return,我们将在函数一章重点学习
好了,要说的就这么多,下面我们来总结一下
- include可以包含头文件,将别的头文件的内容放到自己的程序中
- 程序必须要有main函数,并且程序从main处开始执行
- main后的大括号表示这个大括号括起来的内容都属于main函数
- return可以让程序退出
我们就学了这么多东西,你是否已经理解?
不懂?没关系!本篇文章的目的是让你对c程序的结构稍作了解。
如果你现在还有些晕晕乎乎的话是正常的赶脚,有些东西到后面自然就会茅塞顿开了
你可以继续往后看