第1章:第一个 C 程序:Hello World
学习一门新语言,最好的方式就是从创建一个简单的程序开始。
编程的核心是通过指令让计算机完成特定任务,而简单程序能帮助我们快速熟悉语言的基本逻辑和语法框架。
在编程界,一直保留着第一个程序是 “Hello World” 的传统。这个传统起源于 1978 年布莱恩·威尔森·克尼汉(Brian Wilson Kernighan)和丹尼斯·麦卡利斯泰尔·里奇(Dennis MacAlistair Ritchie)合著的《C 程序设计语言》,此后成为无数程序员入门新语言的起点,它能快速验证开发环境是否配置成功,同时让初学者体验 “让计算机输出内容” 的核心流程。
首先,我们需要在集成开发环境(IDE)或文本编辑器中创建一个新文件,并将其保存为hello.c(.c 扩展名是 C 语言源文件的标识,编译器通过该扩展名识别 C 语言代码)。然后,输入以下代码:
hello.c
#include<stdio.h>intmain(){printf("Hello, World!\n");return0;} 这个简单的程序包含了 C 语言最基本的框架,看似简短却涵盖了程序运行的核心要素。我们来逐行解析它的含义和作用:
●#include <stdio.h>:这行代码是预处理器指令,作用是告诉编译器在编译前 “包含” 标准输入输出头文件(stdio.h)。可以把它理解为 “导入工具库”——stdio.h。stdio.h中封装了打印输出、读取输入等基础功能函数,printf就是其中之一,没有这行代码,计算机无法识别printf函数的功能。
●int main() { ...... }:这是程序的主函数,也是 C 程序的唯一入口点。每一个可运行的 C 程序都必须有且仅有一个main函数,计算机运行程序时,会从main函数里的第一条指令开始执行。int表示函数执行完毕后会返回一个整数给操作系统。花括号{}界定了函数体的范围,所有需要执行的指令都必须写在这对花括号内。
●printf("Hello, World!\n");:这是函数调用语句,功能是向屏幕打印双引号内的字符串。printf来自之前包含的stdio.h头文件,双引号中的 “Hello, World!” 是要输出的内容;末尾的\n是转义字符,代表 “换行”,能让输出后光标自动移到下一行,使结果更整洁。需要注意的是,C 语言中每条语句的结尾都必须加半角分号;,用于标记语句结束,这是语法强制要求。
●return 0;:这是主函数的返回语句。返回值 0 是编程中的约定,用于告诉操作系统 “程序正常执行完毕,没有出现错误”;如果返回非 0 值,则通常表示程序运行过程中出现了异常。
C 语言是编译型语言,我们编写的源代码(hello.c)是人类可读的文本文件,计算机无法直接执行。必须通过编译器(如 GCC、Clang、MinGW 等)将其翻译成机器能识别的二进制指令,这个过程称为 “编译”,编译后会生成可执行文件。
编译和运行的操作方式因开发工具不同而有所差异:
● 若使用 IDE(如 Dev-C++、Code::Blocks、Visual Studio):通常只需点击界面上的 “构建”(Build)或 “运行”(Run)按钮,IDE 会自动完成编译、链接和运行步骤,无需手动输入命令。
● 若在命令行中使用 GCC 编译器:打开命令行终端,切换到hello.c所在的文件夹,输入以下命令:
gcc hello.c 这条命令中,gcc是编译器指令,hello.c是要编译的源文件,编译后生成的可执行文件名为 hello(Windows 系统下会自动生成 hello.exe,Linux 和 macOS 下为 hello)。
如果编译没有错误,运行可执行文件后,你将在屏幕上看到一行清晰的输出:
Hello, World!-------------------------------- Process exited after0.04838seconds withreturnvalue0请按任意键继续... “Hello, World” 程序虽然简单,但它的意义远不止于输出一句话。它是你理解C 语言程序结构(头文件包含、主函数、语句格式)、编译流程(源代码→编译器→可执行文件)的第一个实践案例,为后续学习更复杂的逻辑和功能打下基础。
笔记:
.c文件 是 C 语言源文件的标准扩展名,用于区分其他类型的文件(如 C++ 的.cpp、Java 的.java)。#include< >是 C 语言的预处理命令,用来导入系统头文件(如stdio.h);若导入自定义头文件,需使用#include ""。每一个可运行的 C 程序都必须有且仅有一个
main函数。计算机运行程序时,会从main函数里的第一条指令开始执行。C 语言用花括号
{}界定代码范围,常见于函数体、代码块的开始与结束。printf()函数是 C 语言的标准输出函数,用于向屏幕打印字符串或变量值,需导入stdio.h头文件才能使用。语句结尾的分号
;不能遗漏,它是 C 语言的语句结束标记,遗漏会导致编译语法错误。\n是转义字符,代表 “换行”,能让输出后光标自动移至下一行,类似键盘的回车键功能。return 0;是主函数的返回语句,返回值 0 代表程序正常执行完毕,非 0 值通常表示程序运行异常。我们需要简化出C语言代码的通用结构:
#include<XXX.h>//导入需要的工具。intmain(){//在这里写代码。return0;}C 语言是编译型语言,源代码(.c 文件)需通过编译器(如 GCC、Clang)翻译成二进制可执行文件后,才能被计算机执行。
Windows 系统下,编译生成的可执行文件扩展名为
.exe(如hello.exe)。