初识hello world

如果你也看过很多大师的著作,应该都会发现几乎所有的C语言入门都用到了“Hello World”这样一个简单的程序。

从我自身而言,我似乎很早就明白hello world这个程序的一些原理机制,但随着进一步的知识积累发掘,才慢慢发现简单的事物背后往往蕴含着复杂的原理。

如下是一段C语言编写的Hello World的代码:

#include <stdio.h>
 
int main()
{
    /* 打印Hello World字样 */
    printf("Hello, World! \n");
 
    return 0;
}

拿到这段代码,我们开始从最基本的一些问题开始思考。

 

对于一个C语言的初学者,要明白这一段代码的编写规则:

1. stdio.h 是一个头文件 (标准输入输出头文件) , #include 是一个预处理命令,用来引入头文件。换一种说法解释,就是在程序中可能需要用到一些函数(关于函数的概念会在下面提到),但是这个函数并不是由我们编写代码实现的,而是别人写好给我们使用的。所以为了使用这些函数,就需要通过头文件包含进来。在这个例子中我们使用到了标准输入/输出库,标准输入/输出库是C标准库的一部分,它命名的规则为含义的缩写,即Standard Input and Output。对于C语言标准库,在这里可以暂时理解它是编译器实现者实现并提供给我们使用的一系列函数集合.

2. main()是一个名为main的函数,它是C语言中默认的入口函数,即在默认情况下运行程序时系统会先调用程序中的main函数。在不修改入口函数名称的情况下,一个完整的程序中main函数是必须的。main后面的()表示函数的参数列表,但在此例中没有用到参数,所以使用了空的参数列表()。函数使用一对{}将它的语句包括在其中,函数中的语句决定了函数的作用,它可能只有一行语句,也可能有成百上千行。在例子中,main函数只包含了一条语句printf("hello world\n");,将在下一段介绍它的作用。

3. 正如同上一段所说,main是一个函数,而printf也是一个函数。但是在这里不同于main,只是在使用printf,所以在写法上与实现main函数时有所区别。在实现main函数时使用了{}来包括它的语句,而调用printf而并非实现它,所以没有实现语句也就不需要使用{},而是使用了;代表这一行语句结束。在除了宏、使用了{}的语句等情况外,分号;都是必须的。printf函数的含义是格式化输出(Formatted Output),它来自于使用#include <stdio.h>包含进来的标准输入/输出库。在()中的就是要传递给printf函数的参数,在例子在中传递的是一个字符串"hello world\n"。在字符串中包含着一个\n,它是一个转义字符,称为换行符,作用如同名称为换行。在不包含\n的情况下,printf不会进行换行,所以一般在使用过程中我们会手动添加\n进行换行。在程序运行过程中,当printf函数运行后,就将会在屏幕上打印出hello world。

4.由于main函数被定义为int类型的函数,对于非空类型的函数(void类型为空类型,不用返回值),必须返回相应的返回值,这里用return 0;表示函数返回值为0。

5. 在C语言中,除去必要的空格外,空行和空格往往不是必须的,它的作用是为了提高代码的可读性。很多人可能会觉得这是多敲空格和换行是件麻烦的事,在初学阶段往往也忽视了这点。缺少空格的情况下可能会使阅读代码者混淆代码的含义,造成后续编写上的困难。一个产品被开发出来以后还需要进行维护与升级,而且开发一个产品往往不是只由一个人完成,所以有一个良好的编程习惯也是非常重要的。

 

本文中简单介绍了Hello World程序的代码结构,在下一篇我们将给大家介绍这段程序是如何执行的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值