C 语言编程教程

C 语言 - 首页

C 语言基础

C 语言 - 概述 C 语言 - 特性 C 语言 - 发展历史 C 语言 - 环境设置 C 语言 - 程序结构 C 语言 - Hello World C - 编译过程 C - 注释 C - 标记 C - 关键字 C - 标识符 C - 用户输入 C - 基本语法 C - 数据类型 C - 变量 C - 整数提升 C - 类型转换 C - 类型转换 C - 布尔值

C 语言中的常量和文字

C - 常量 C - 字面量 C - 转义序列 C - 格式说明符

C 语言中的运算符

C - 运算符 C - 算术运算符 C - 关系运算符 C - 逻辑运算符 C - 位运算符 C - 赋值运算符 C - 一元运算符 C - 递增和递减运算符 C - 三元运算符 C - sizeof 运算符 C - 运算符优先级 C - 其他运算符

C 语言中的决策

C - 决策 C - if 语句 C - if...else 语句 C - 嵌套 if 语句 C - switch 语句 C - 嵌套 switch 语句

C 语言中的循环

C - 循环 C - While 循环 C - For 循环 C - Do...while 循环 C - 嵌套循环 C - 无限循环 C - Break 语句 C - Continue 语句 C - goto 语句

C 语言中的函数

C - 函数 C - Main 函数 C - 按值调用函数 C - 按引用调用函数 C - 嵌套函数 C - 可变参数函数 C - 用户定义函数 C - 回调函数 C - return 语句 C - 递归

C 语言中的作用域规则

C - 作用域规则 C - 静态变量 C - 全局变量

C 语言中的数组

C - 数组 C - 数组的属性 C - 多维数组 C - 将数组传递给函数 C - 从函数返回数组 C - 可变长度数组

C 语言中的指针

C - 指针 C - 指针和数组 C - 指针的应用 C - 指针运算 C - 指针数组 C - 指向指针的指针 C - 将指针传递给函数 C - 从函数返回指针 C - 函数指针 C - 指向数组的指针 C - 指向结构体的指针 C - 指针链 C - 指针 vs 数组 C - 字符指针和函数 C - NULL 指针 C - void 指针 C - 悬垂指针 C - 解引用指针 C - Near、Far 和 Huge 指针 C - 指针数组的初始化 C - 指针与多维数组

C 语言中的字符串

C - 字符串 C - 字符串数组 C - 特殊字符

C 语言的结构体和联合

C - 结构体 C - 结构体和函数 C - 结构体数组 C - 自引用结构 C - 查找表 C - 点 (.) 运算符 C - 枚举(或 enum) C - 结构填充和打包 C - 嵌套结构 C - 匿名结构和联合 C - 联合 C - Bit 位字段 C - Typedef

C 语言中的文件处理

C - 输入和输出 C - 文件 I/O(文件处理)

C 语言中的预处理器

C - 预处理器 C - #pragma 编译指示 C - 预处理器操作符 C - 宏 C - 头文件

C 语言中的内存管理

C - 内存管理 C - 内存地址 C - 存储类

C 其他主题

C - 错误处理 C - 可变参数 C - 命令执行 C - 数学函数 C - static 静态关键字 C - 随机数生成 C - 命令行参数

C 语言编程资源

C语言问题与解答答案 C语言快速指南 C语言速查表 C语言实用资源 C语言讨论


C - Hello World

每个立志成为专业软件开发者的学习者,都始于用自己正在学习的编程语言编写一个 Hello World 程序。在本章中,我们将学习如何用 C 语言编写一个 Hello World 程序。

C 语言 Hello World

在编写 Hello World 程序之前,请确保您的计算机已设置好 C 编程环境。这包括 GCC 编译器、文本编辑器,最好还有一个用于 C 编程的 IDE,例如 CodeBlocks。

示例

第一步是编写 Hello World 程序的源代码。在您的计算机上打开一个文本编辑器。在 Windows 系统中,打开 Notepad 或 Notepad++,输入以下代码并将其保存为"hello.c"。

#include <stdio.h>

int main(){
   
   /* 我的第一个 C 语言程序 */
   printf("Hello World! 
");

   return 0;
}

输出

运行代码并检查其输出 −

Hello World!

C 程序的逐步执行

让我们逐步了解上述程序的工作原理。

步骤 1

上述代码中的第一个语句是 #include 语句,它将 stdio.h 文件导入到当前 C 程序中。这被称为 预处理器指令。该头文件包含用于标准 IO 操作的几个库函数的定义。由于我们将调用 stdio.h 库中定义的 printf() 函数,因此我们需要在第一步中将其包含进去。

步骤 2

每个 C 程序都必须包含一个 main() 函数。此程序中的 main() 函数在控制台终端上打印"Hello World"消息。

在 main() 函数内部,我们插入了一条注释语句,该语句最终会被编译器忽略;它用于文档编写。

下一条语句调用 printf() 函数。在 C 语言中,每个语句都必须以分号 (;) 结尾,否则编译器会报告错误。

printf() 函数从 stdio.h 库文件导入,它将 Hello World 字符串回显到标准输出流。在 Windows 系统中,标准输出流是命令提示符终端;在 Linux 系统中,标准输出流是 Linux 终端。

在 C 语言中,每个函数都需要有一个返回值。如果函数不返回任何内容,则其值为 void。在上面的示例中,main() 函数的返回值为 int。由于 main() 函数不需要返回任何内容,因此它被定义为返回一个整数"0"。"return 0"语句也表明程序已成功编译并运行。

步骤 3

接下来,我们需要从源代码("hello.c")编译并构建可执行文件。

如果您使用的是 Windows,请在保存"hello.c"的文件夹中打开命令提示符。以下命令将编译源代码 -

gcc -c hello.c -o hello.o

-c 选项指定要编译的源代码文件。如果 C 程序没有任何错误,这将生成一个名为 hello.o 的目标文件。如果程序包含错误,则会显示错误信息。例如,如果我们忘记在 printf() 语句末尾加上分号,编译结果将显示以下错误 -

helloworld.c: In function 'main':
helloworld.c:6:30: error: expected ';' before 'return'
   printf("Hello, World! 
")
                             ^
                             ;
helloworld.c:8:4:
   return 0;

要从编译后的目标文件构建可执行文件,请使用以下命令 -

gcc -o hello.exe hello.o

现在已准备好从命令提示符运行 hello.exe,并在终端中显示 Hello World 消息。

C:\Users\user>hello
Hello World!

在 Ubuntu Linux 上,目标文件首先会通过在文件前添加"./"前缀来获得可执行权限,然后才能运行。

$ chmod a+x a.o
$ ./a.o

您还可以使用 CodeBlocks 等 IDE 更便捷地输入代码、编辑、调试和运行 Hello World 程序。

使用 CodeBlocks IDE 进行 C 语言编程

CodeBlocks 是最流行的 C/C++ 开发 IDE 之一。如果您尚未安装,请安装并打开它。从"文件"菜单创建一个新文件,输入以下代码并将其保存为"hello.c"。

示例

#include <stdio.h>

int main(){
   
   /* 我的第一个 C 语言程序 */
   
   printf("Hello World! 
");

   return 0;
}

输出

运行代码并检查其输出 −

Hello World!

从"构建"菜单中选择"构建并运行"选项,如下所示 -

构建菜单

您也可以使用 F9 快捷键执行相同操作。如果程序没有错误,"构建日志"选项卡将显示以下消息 -

gcc.exe   -c C:\Users\mlath\hello.c -o C:\Users\mlath\hello.o
gcc.exe  -o C:\Users\mlath\hello.exe C:\Users\mlath\hello.o   
Process terminated with status 0 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
 
Checking for existence: C:\Users\mlath \hello.exe
Executing: '"C:\Program Files\CodeBlocks/cb_console_runner.exe" "C:\Users\mlath\hello.exe"' (in 'C:\Users\mlath\Documents')

在单独的命令提示符窗口中,将显示输出 -

Hello World!

Process returned 0 (0x0)   execution time : 0.236 s
Press any key to continue.

如果代码包含错误,构建日志选项卡会回显这些错误。例如,如果我们漏掉了 printf() 语句末尾的分号,日志将如下所示 -

Build Messages

您可以使用任何其他 IDE 来运行 C 程序。您需要遵循相应 IDE 的文档。

成功运行 Hello World 也表明您的计算机上的 C 编程环境正常运行。