程序(program)是一组让计算机解决问题的指令。刚开始学习编程时,最容易误解的一点是:计算机并不会“理解”人类自然语言。即使是“计算一下 1 + 2”这么简单的请求,也必须被写成计算机能执行的明确步骤。
计算机底层处理的是二进制信息,也就是由 0 和 1 表示的数据。编程语言的作用,是把人的想法变成一组结构化、可执行、没有歧义的指令。你写下源代码(source code),C 编译器先把它编译成目标代码(object code),操作系统(运行环境)再加载并执行这些指令。
常见的主流编程语言包括:
- Python:语法简洁,常用于入门编程、数据分析、人工智能、自动化脚本和 Web 后端。
- C:更接近计算机底层,常用于操作系统、嵌入式系统和性能敏感的程序。
- C++:在 C 的基础上支持更多抽象能力,常用于游戏引擎、高性能计算和大型软件系统。
- Java:常用于企业级后端、Android 开发和大型跨平台系统。
- JavaScript / TypeScript:主要用于网页前端,也可以用于后端和全栈开发。
- Go、Rust、C#:分别常见于云服务、系统编程、游戏开发和企业应用等领域。
不同语言的语法、适用场景和学习曲线不同,但它们的共同目标都是把人的想法变成计算机可以执行的明确指令。
什么是程序?
一个程序通常包含四类基本动作:
- 输入(input):从键盘、文件、网络或其他来源获得数据。
- 处理(processing):计算、判断、转换或保存数据。
- 输出(output):把结果显示到屏幕、写入文件,或发送给其他系统。
- 控制流程(control flow):决定哪些步骤先执行、哪些步骤重复执行、哪些步骤在条件满足时才执行。
学习 C 时,不需要一开始就掌握所有复杂语法。更重要的是先建立一个稳定心智:程序是一组清晰步骤,计算机会严格按照这些步骤执行。
流程图
流程图(flowchart)是一种把程序步骤画出来的方法。它适合在写代码之前帮助你看清程序的执行顺序。
下面这个流程图描述了如何计算从 1 到 100 的整数和。
菱形节点代表一次判断:如果条件结果为 true,程序继续累加;如果条件结果为 false,程序输出结果并结束。
对应到代码时,它大致会变成“初始化变量、循环判断、累加、更新变量、输出结果”这几个动作。
#include <stdio.h>
int main(void) {
int i = 1;
int total = 0;
while (i <= 100) {
total = total + i;
i = i + 1;
}
printf("%d\n", total);
return 0;
}知识测验
第一个 C 程序
Hello World 通常是学习一门编程语言的第一个程序。它的作用非常单纯:向屏幕输出一段文本。
#include <stdio.h>
int main(void) {
printf("Hello World!\n");
return 0;
}运行结果:
Hello World!这里有三个细节值得马上记住:
printf是 C 标准输出方法。main函数是 C 程序的入口。"Hello World!"是字符串。字符串是一段文本,需要放在引号中。
核心语句可以读成:“调用 printf,把字符串 Hello World! 显示到屏幕上,并在末尾换行。”
C 程序的结构
不同语言的 Hello World 写法不同,但核心目的相同:把文本输出到屏幕。对比这些例子,可以帮助你看出 C 把头文件、main 函数和语句结束符都明确写在代码中。
print("Hello World!")#include <iostream>
using namespace std;
int main() {
cout << "Hello World!" << endl;
return 0;
}public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}与 Python 的单行输出相比,C 需要通过头文件声明库函数,并从 main 函数进入程序;printf 负责把格式化内容写到标准输出。
知识测验
注释
注释(comment)是写给人看的说明,不会作为程序指令执行。它可以解释代码目的、记录作者信息,或提醒自己某段逻辑的关键原因。
C 中常见的注释方式包括:
- 单行注释:以
//开头,该行后面的内容会被视为注释。 - 多行注释:使用
/* ... */包裹一段或多行说明。
printf("Hello World!\n"); // 输出 "Hello World!"注释不是越多越好。对初学者来说,建议优先注释“为什么这样做”,而不是机械重复“这行代码做了什么”。
知识测验
打印一张三行学习名片
写一个最小可运行的 C 程序,用 printf() 输出三行文本,并用一条注释说明其中一行的作用。
- 第 1 行输出一条问候语,例如“你好,Leaflet!”。
- 第 2 行输出你正在学习的课程名称,例如“C 入门”。
- 第 3 行输出你的一个学习目标,例如“我想学会写条件分支”。
- 在任意一行上方添加一条以 // 开头的单行注释。