Runnoob C 语言入门指南
第一部分:心态与环境搭建
在学习任何编程语言之前,最重要的两件事是:

(图片来源网络,侵删)
- 调整心态:编程就像学一门外语,需要大量的练习和耐心,不要怕犯错,每个程序员都是从“Hello, World!”开始的。
- 搭建环境:你需要一个“编译器”来把你写的代码转换成电脑能懂的可执行文件,对于初学者,最推荐的是 MinGW-w64,它可以在 Windows 上提供类似 Linux 的开发环境。
如何安装环境(以 Windows 为例):
- 下载 MSYS2:这是一个强大的工具包,里面包含了 GCC(C语言编译器)、GDB(调试器)等,访问 msys2.org 下载并安装。
- 更新系统:安装完成后,打开 MSYS2 MINGW64 终端,输入以下命令更新系统:
pacman -Syu # 可能会提示你关闭终端,照做,然后再打开终端 pacman -Su
- 安装编译器:在同一个终端中,安装 MinGW-w64 工具链:
pacman -S --needed base-devel mingw-w64-x86_64-toolchain
- 验证安装:关闭终端,重新打开一个 MSYS2 MINGW64 终端,输入
gcc --version,如果能看到版本号,恭喜你,环境搭建成功!
第二部分:你的第一个程序 - "Hello, World!"
这是编程界的传统仪式,让我们创建一个 C 语言文件。
-
创建文件:在 MSYS2 终端中,使用
nano或vim编辑器创建一个文件(hello.c)。nano hello.c
-
编写代码:在打开的编辑器中,输入以下代码:
(图片来源网络,侵删)#include <stdio.h> // 引入标准输入输出库 int main() { printf("Hello, Runnoob!\n"); // 使用 printf 函数打印文字 return 0; // 返回 0 表示程序正常结束 } -
保存并退出:在
nano中,按Ctrl + X,然后按Y,再按Enter保存。 -
编译代码:回到终端,输入以下命令来编译你的代码。
gcc hello.c -o hello
gcc是编译器命令。hello.c是你的源文件。-o hello指定输出的可执行文件名为hello。
-
运行程序:编译成功后,输入以下命令运行它。
./hello
你将在终端看到输出:
(图片来源网络,侵删)Hello, Runnoob!
恭喜你!你已经成功运行了你的第一个 C 程序!
第三部分:C 语言核心概念
现在我们来分解一下上面代码的每一个部分。
#include <stdio.h>
#include是一个“预处理指令”,告诉编译器在编译前把某个文件的内容包含进来。<stdio.h>是“标准输入输出头文件”,它包含了像printf这样用于在屏幕上打印信息的函数声明,没有它,printf就不认识。
int main()
- 这是程序的入口点,当你运行一个 C 程序时,操作系统会从这里开始执行代码。
int表示这个函数会返回一个整数。- 表示它不接受任何参数。
- 是函数体,包含了要执行的代码。
printf("Hello, Runnoob!\n");
printf是一个函数,用于格式化并打印文本。"Hello, Runnoob!"是一个字符串,你要打印的内容。\n是一个转义字符,代表“换行”,打印完文字后,光标会移动到下一行。
return 0;
return语句用于从函数返回一个值。main函数返回0是一种约定,表示程序成功执行并正常退出,如果返回非零值,通常表示程序遇到了错误。
第四部分:基础语法速查
让我们继续学习一些最基本的 building blocks(构建块)。
变量 变量是存储数据的容器,C 语言在使用变量前必须先声明其类型。
#include <stdio.h>
int main() {
int age = 25; // 整数
float price = 19.99; // 单精度浮点数(小数)
char grade = 'A'; // 字符,用单引号
double pi = 3.14159; // 双精度浮点数,精度更高
printf("Age: %d\n", age);
printf("Price: %f\n", price);
printf("Grade: %c\n", grade);
printf("Pi: %lf\n", pi);
return 0;
}
%d,%f,%c,%lf是printf的格式占位符,用于告诉函数如何打印不同类型的数据。
常量
常量的值在程序运行期间不能被改变,使用 const 关键字。
const int MAX_STUDENTS = 30; // MAX_STUDENTS = 31; // 这行代码会报错!
运算符
- 算术运算符: (加), (减), (乘), (除), (取余)
- 赋值运算符: , , , ,
- 比较运算符: (等于), (不等于),
>,<,>=,<= - 逻辑运算符:
&&(与), (或), (非)
示例:
int a = 10, b = 3;
printf("a + b = %d\n", a + b); // 13
printf("a % b = %d\n", a % b); // 1 (10除以3的余数)
条件语句 让程序根据条件做出不同的选择。
#include <stdio.h>
int main() {
int score = 85;
if (score >= 90) {
printf("Grade: A\n");
} else if (score >= 80) {
printf("Grade: B\n");
} else {
printf("Grade: C or below\n");
}
return 0;
}
循环 重复执行某段代码。
for循环:当你知道要循环多少次时使用。for (int i = 1; i <= 5; i++) { printf("Loop %d\n", i); }while循环:当某个条件为真时,一直循环。int count = 0; while (count < 5) { printf("Count is %d\n", count); count++; // 别忘了增加计数器,否则会死循环! }
第五部分:进阶概念(初探)
当你掌握了基础后,可以开始探索更强大的概念。
函数 把代码封装成可重用的模块。
// 函数声明
int add(int x, int y);
int main() {
int result = add(5, 3);
printf("5 + 3 = %d\n", result);
return 0;
}
// 函数定义
int add(int x, int y) {
return x + y;
}
数组 存储相同类型数据的集合。
int numbers[5] = {10, 20, 30, 40, 50};
printf("The third number is %d\n", numbers[2]); // 数组索引从 0 开始
指针 C 语言的精髓之一,它存储的是变量的内存地址,理解指针是成为 C 语言高手的必经之路。
int var = 100;
int *ptr; // 声明一个整型指针
ptr = &var; // & 是取地址运算符,获取 var 的地址
printf("Value of var: %d\n", var);
printf("Address of var: %p\n", &var);
printf("Value of ptr: %p\n", ptr);
printf("Value pointed by ptr: %d\n", *ptr); // * 是解引用运算符,获取地址上的值
第六部分:Runnoob 的学习路径建议
- 动手!动手!动手! 看懂代码不等于会写代码,把上面的例子都自己敲一遍,然后尝试修改它们,看看会发生什么。
- 从小项目开始:不要一开始就想做游戏,可以从简单的计算器、猜数字游戏、学生成绩管理系统开始。
- 学会调试:当程序出错时,不要慌,仔细阅读编译器报错信息,它会告诉你问题出在哪一行,学会使用
printf来打印变量值,是调试最简单有效的方法。 - 阅读优秀代码:去 GitHub 上找一些开源的、小型的 C 语言项目,看看别人是怎么写的。
- 坚持:C 语言的学习曲线比较陡峭,但只要你坚持下去,收获的将不仅仅是编程技能,更是对计算机底层工作原理的深刻理解。
Runnoob,你的学习路线是:
环境搭建 -> Hello World -> 变量/数据类型 -> 运算符 -> 条件/循环 -> 函数 -> 数组/指针 -> 实践项目
别怕,你不是一个人在战斗,每一个大神都曾是像你一样的 Runnoob,打开你的终端,敲下第一行代码吧!加油!
