让我们来看一个简单的C语言程序。从下面的程序可以看出编写C语言程序的一些基本特征。
如果你能知道该程序将会在显示器上显示一些内容,那说明你还是知道一些的!确实如此,但所要显示的确切内容不是显而易见的,所以请运行程序来观看结果。首先,用你熟悉的编辑器建立一个上面这个样的程序,然后给这个程序取一个名字,并以 .c 作为结尾以满足所在系统对文件名格式的要求。例如,你可以把它命名为 helloworld.c。 现在编译并运行该程序 。
如果一切运行正常,其显示结果为:
实例简单说明
我们来将程序的源代码分析一下:
#include 包含另一个文件
这是程序的第一行。它的作用相当于你在文件中的这行所在的位置键入了文件 stdio.h 的完整内容。实际上,它是一种剪切和粘贴操作,这样可以方便地在多个程序间共享公用的信息。
#include 语句是 C预处理指令 的一个例子。通常,C 编译器在编译前要对源代码做一些准备工作;这称为预处理。
stdio.h 文件作为所有 C编译包的一部分提供,它包含了有关输出输入函数的信息以供编译器使用。这个名字代表标准输入输出头文件。我们称之为头文件,C语言中通常都带有许多头文件。
int main () 函数名
接下来的这行代码声明了一个 main函数。一个 C语言程序总是从称为 main()的函数开始执行的。你可以对你所用的其他函数任意命名,但是 main()必须是开始的函数,所以说,main()函数在程序中是唯一的。那么圆括号的功能呢?它们表明 main()是一个函数。以后你将了解到更多的函数。但现在,请你记住这个函数是 C程序的基本模块。
int 指明了 main()函数的返回类型。这意味着 main()函数返回值的类型是整数。返回到哪里呢?返回给操作系统。
如果浏览老版本的 C代码,你将发现程序常常以:
main()
这种形式开始。C90标准勉强允许这种形式,但是 C99标准不允许。因此即使你当前的编译器允许,也不要这么做,请注意规范。
/* 一个简单的 C程序 */ 注释
包含在 /* */ 之间的部分是程序注释。使用注释的目的是使自己和他人更容易理解你的程序。C语言的注释的一个好处就是可以被放在任意的地方,甚至是和它要解释的语句在同一行。一个较长的注释可以单放一行,或者是多行。在/* 和 */之间的所有内容都会被编译器忽略掉。下面是一些正确和不正确的注释形式:
也可以这样写:
C99 增加了另一种风格的注释,它被普遍用在 C++ 和 Java里。这种新形式使用 // 符号,但这种注释被限制在一行里:
因为一行的结尾就标志着注释的结束,所以这种形式只在注释的开始处需要标志符号。
{ 函数体的开始 } 函数体的结束
{
...
}
在前面的程序中,花括号划定了 main函数的界线。通常,所有的 C语言函数都使用花括号来表示函数体的开始与结束。它们的存在是必不可少的,因此不能丢掉它们。仅有花括号 { } 能起到这种作用,小括号()和中括号 [ ] 都是不可以的。
花括号还可以用来把函数中的语句聚集到一个单元或代码块中。
int num; ---声明语句
这个语句表明你将使用 num 这个变量,并且它是 int(整数)类型的。
程序中的这一行叫做声明语句 。该声明语句是 C语言中最重要的功能之一。在 C语言中,所有变量都必须在使用之前定义。
这句声明表达了两个意思:
第一,在函数中你有一个名为 num 的变量。
第二, int说明 num 是一个整数,也就是说这个数没有小数点或者小数部分。编译器使用这个信息为变量 num在内存中分配一个合适的存储空间。句末的;指明了这一行是 C语言的一个语句或指令。每条语句后面都需要写上;。
单词 int 是 C语言的一个关键字,它代表 C中最基本的一个数据类型。关键字是用来表达语言的单词,你不能将它们用于其他目的。例如,不能把 int 用作一个函数或者是变量的名字。
num = 1; 赋值语句
这行程序是一个赋值语句。赋值语句是 C语言的基本操作之一。这个特殊的例子的意思是“把数值1赋给变量 num”。可以简单理解为把1给了num,那么num就是1了。注意赋值语句赋值的顺序是从右到左。同样,该语句也用;结束语句。
printf ("hello world!"); 一个函数调用语句
printf ("hello world!");
printf ("这是我学习C语言的第%d天!",num);
上面两句话都使用了 C语言的一个标准函数:printf();。圆括号表明 printf 是一个函数名,程序将识别 “ ” 之间的内容并把它们显示在屏幕上。
结果显示的结果应该为:
那么引号中有字符,但并没有输出它们!发生了什么事情呢? 字符代表一个称为换行符的字符,它意味着“在下一行的最左边开始新的一行”。
换行符是转义字符的一个例子。转义字符通常用于代表难于表达的或是无法键入的字符。其他的例子比如 代表 Tab键, 代表退格键盘。每个转义字符都用斜线字符()开始。
另外,输出最后一行时 %d 起什么作用?回忆一下,这一行的输出结果是:
这是我学习C语言的第1天!
当这一行输出时,数字1被符号组合%d代替了,而1是变量 num的值。%d是一个占位符,其作用是指出输出 num 值的位置。简单来说 就是把%d用这行语句后面的num替换。
return 0; --- 返回语句
return 语句也叫返回语句,它是程序的最后一个语句。在 int main()中 int 表示 main()函数的返回值应该是一个整数。C标准要求 main()这样做。带有返回值的 C语言函数要使用一个 return 语句,该语句包括关键字 return,后面紧跟着要返回的值,然后是一个分号。对于 main()函数来说,如果你漏掉了 return语句,则大多数编译器将对你的疏忽提出警告,但仍将编译该程序。此时,你可以暂时把 main()中的 return语句看作是保持逻辑连贯性所需的内容。