【速通C语言(纯小白版)】第二部分:hello world

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程序。您可以选择清空按钮,自己输入程序(我极力推荐自己动手输入的方式,因为这样会加深您的印象)。在左侧的输入框,输入以下程序:

c 复制代码
#include <stdio.h>

int main()
{
   printf("Hello, World! \n");
   return 0;
}

然后点击运行按钮,您会惊喜地发现,右侧输出框打印出了"Hello, World!"!

3 C语言的程序结构

上一小节您实现了您的第一个C语言程序,这足够让人振奋心情!这一小节我们将进一步讨论一下Hello World程序。

3.1 预处理指令

c 复制代码
#include <stdio.h>

首先来看第一行,这一行称为预处理指令 。每个C程序都可以从预处理器指令开始,这是一些特殊的指令,告诉编译器 在实际编译之前需要进行的操作。最常见的预处理器指令是#include,它用于包含标准库或用户定义的头文件。以"#"开始,include关键字是告诉C语言编译器,我们的程序将包含什么样的头文件。这里出现了两个新的名词,编译器和头文件。

编译器

我们来介绍一下什么是编译器。您还记得上一篇文章(准备工作)中的高级语言和机器语言吗?不记得也没关系,您可以回顾一下上一篇文章。我们知道,程序员使用的语言是高级语言,而机器使用的语言是机器语言,这是两种不同的语言。那么,程序员用高级语言编写的程序,是如何被计算机所理解的呢?没错。程序员所编写的程序将会通过编译器转换为机器所能理解的机器语言,转换的过程叫做编译。

头文件

头文件是程序员已经预先写好的一些代码,实现了某些功能,当我们想要使用这些功能时,只需要在代码的开头引用它们。我们已经认识了stdio.h头文件,它是编译器自带的头文件,能够为我们提供将"hello world"这样的字母打印到屏幕上的功能。

3.2 主函数

c 复制代码
int main()
{

}

C程序的执行从main函数开始。main函数是程序的入口点,它必须被定义在每个程序中。您也许注意到,main函数中的两条语句被括号包裹了,{}的作用是表示代码块的开始和结束。代码块是一组一起执行的语句,它们在逻辑上被组织在一起。C语言会按照从上至下的顺序执行main函数中被{}包裹的语句。

c 复制代码
printf("Hello, World! \n");

这条语句执行了我们想要实现的功能,printf来自于stdio.h头文件,实现的功能是将()中的"hello world"打印在屏幕上,\n代表换行符,在打印完成之后将光标换一行。

c 复制代码
return 0;

在C语言中,return 语句用于从函数返回一个值。当 return 语句在 main 函数中使用时,它表示程序正常结束并返回一个状态码给操作系统。return 0; 通常表示程序成功完成,没有错误。

4 总结

本文以一个简单的hello world程序介绍了C语言的结构。让我们来总结一下,hello world的结构可以简单地概括为:"头文件->主函数->执行语句->返回值"。

事实上,C语言程序的结构通常比简单的"头文件->主函数->执行语句->返回值"更为复杂和详细,但这个概括在某种程度上可以作为理解C语言程序基本组成部分的一个起点。

相关推荐
笑衬人心。2 分钟前
Java 17 新特性笔记
java·开发语言·笔记
序属秋秋秋1 小时前
《C++初阶之内存管理》【内存分布 + operator new/delete + 定位new】
开发语言·c++·笔记·学习
ruan1145142 小时前
MySQL4种隔离级别
java·开发语言·mysql
quant_19863 小时前
R语言如何接入实时行情接口
开发语言·经验分享·笔记·python·websocket·金融·r语言
啟明起鸣6 小时前
【网络编程】简易的 p2p 模型,实现两台虚拟机之间的简单点对点通信,并以小见大观察 TCP 协议的具体运行
c语言·网络·tcp/ip·p2p
百锦再7 小时前
详细解析 .NET 依赖注入的三种生命周期模式
java·开发语言·.net·di·注入·模式·依赖
风吹落叶花飘荡8 小时前
2025 Next.js项目提前编译并在服务器
服务器·开发语言·javascript
失败又激情的man8 小时前
python之requests库解析
开发语言·爬虫·python
专注VB编程开发20年8 小时前
常见 HTTP 方法的成功状态码200,204,202,201
开发语言·网络协议·tcp/ip·http
有没有没有重复的名字8 小时前
线程安全的单例模式与读者写者问题
java·开发语言·单例模式