在开始之前,首先向大家推荐一个 Mac 终端神器,链接在这里,用过的人都说好。
首先,我们需要知道,一个程序能够运行,一定会经历如下几步:
- 编写程序文本;
- 编译;
- 加载;
- 运行;
- 输出。
第一步的编写程序文本,如下所示:
#include <stdio.h>
int main()
{
printf("hello, world\\n");
return 520;
}
我所使用的编译环境为 Mac,直接使用 Mac 自带的 gcc
编译。
gcc ./hello.c
如果源程序没有任何错误(例如漏掉字符或拼写错误),就会生成一个执行文件 a.out
。我们来执行这个程序,就会打印出 “hello, world”。
./a.out
// hello, world
在其他操作系统中,编译、加载、运行等规则会有所不同。
下面对程序本身做些说明。一个 C 语言程序,无论其大小如何,都是由函数
和 变量
组成的。函数中包含一些语句,以指定所要执行的计算操作;变量则用于存储计算过程中使用的值。C 语言中的函数类似于 Fortran 语言中的子程序和函数,与 Pascal 语言中的过程和函数也很类似。在本例中 ——每个程序都从 main 函数的起点开始执行,这意味着每个程序都必须在某个位置包含一个 main 函数。
main 函数通常会调用其他函数来帮助完成某些工作,被调用的函数可以是程序设计人员自己编写的,也可以来自于函数库。上述程序段中的第一行语句:
#include <stdio.h>
用于告诉编译器在本程序中包含标准输入/输出库的信息。许多 C 语言源程序的开始处都包含这一行语句。
函数之间进行数据交换的一种方法是调用函数向被调用函数提供一个值(称为参数
)列表。函数名后面的一对圆括号将参数列表括起来。在本例中,main 函数不需要任何参数,因此用空参数表( )表示。
函数中的语句用一对花括号 {} 括起来。本例中的 main 函数包含下面一条语句:
printf("hello, world\\n");
调用函数时,只需要使用函数名加上圆括号起来括起来的参数表即可。上面这条语句将 “hello, world\n” 作为参数调用 printf 函数。printf 是一个用于打印输出的库函数,在此处,它打印双引号中间的字符串。
用双引号括起来的字符序列称为字符串或字符串常量,如 “hello, world\n” 就是一个字符串。目前我们仅使用字符串作为 printf 以及其他函数的参数。
在 C 语言中,字符序列 \n 表示换行符,在打印中遇到它时,输出打印将换行,从下一行的左端行首开始。如果去掉字符串中的 \n,即使输出打印完成后也不会换行。在 printf 函数的参数中,只能用 \n 表示换行符。如果用程序的换行代替 \n,例如:
printf("hello, world
");
C 编译器将会产生一条错误信息。
printf 函数永远不会自动换行,这样我们可以多次调用该函数以分阶段得到一个长的输出行。上面给出的程序也可以改写成下面下列形式:
#include <stdio.h>
int main()
{
printf("hello, ");
printf("world");
printf("\\n");
return 520;
}
这段程序与前面的程序输出相同。
请注意,\n 只代表一个字符。类似于 \n 转义字符序列为表示无法输入的字符或不可见字符提供了一种通用的可扩充的机制。除此之外,C 语言提供的转义字符序列还包括:\t 表示制表符;\b 表示会退符;\” 表示双引号;\ 表示反斜杠符本身。
网友评论