【速通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语言程序基本组成部分的一个起点。

相关推荐
猛犸MAMMOTH4 分钟前
Python打卡第46天
开发语言·python·机器学习
多多*30 分钟前
微服务网关SpringCloudGateway+SaToken鉴权
linux·开发语言·redis·python·sql·log4j·bootstrap
梓仁沐白31 分钟前
【Kotlin】协程
开发语言·python·kotlin
Cyanto1 小时前
Java并发编程面试题
java·开发语言·面试
海的诗篇_1 小时前
前端开发面试题总结-JavaScript篇(一)
开发语言·前端·javascript·学习·面试
じ☆ve 清风°1 小时前
理解JavaScript中map和parseInt的陷阱:一个常见的面试题解析
开发语言·javascript·ecmascript
sss191s1 小时前
Java 集合面试题从数据结构到 HashMap 源码剖析详解及常见考点梳理
java·开发语言·数据结构
IGP91 小时前
20250606-C#知识:委托和事件
开发语言·c#
hjyowl2 小时前
题解:AT_abc407_c [ABC407C] Security 2
c语言·开发语言·算法
唐墨1232 小时前
android与Qt类比
android·开发语言·qt