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

相关推荐
Logic1011 分钟前
C语言/数据结构位运算题解:异或XOR找出独特数字的索引位置——成对数字在两侧
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
x秀x5 分钟前
sam3新手使用教程
开发语言·python
Java后端的Ai之路6 分钟前
大模型LLM评估完全指南
开发语言·人工智能·python·llm·评估
Brilliantwxx19 分钟前
【STM32】 从HAL库源码深度解析I2C(源码解析+面试题)
开发语言·stm32·单片机·嵌入式硬件·架构
小白学大数据31 分钟前
Python 小工具实战:用问财接口搭建金融数据采集器
开发语言·人工智能·python
泡海椒33 分钟前
jquick-pdf 核心原理解析:基于 HTML 模板动态渲染 PDF 的实现逻辑
java·开发语言·pdf
小此方3 小时前
「C++AI大模型接入SDK」(一) API接入与本地两种方式对比、API Key获取、API报文详解与简单API的构建
开发语言·c++·人工智能
wuyk5553 小时前
Python实战项目02:学生成绩管理系统(控制台|CSV导出|完整落地)
开发语言·python
浪子明X10 小时前
十六位账本怎样发现传输差错:Internet Checksum 生活类比
开发语言
xiangyun6113 小时前
【408数据结构 08】队列:循环队列判空判满,408年年考,一次讲清
c语言·开发语言·数据结构·c++·算法