模块一 · 入门基础 / 第 01 课
01 · C 是什么,程序怎么跑
学习目标
- 明白 C 语言用来做什么
- 读懂最小程序每一行的意思
- 知道「写代码 → 编译 → 运行」三步
先建立一个画面
C 是一门接近硬件、速度很快的编程语言。操作系统、嵌入式、很多底层库都是 C 写的。
你写的源码是给人看的文本,计算机看不懂。要先经过编译器翻译成机器码,再运行。
1写 .c 文件
2编译
3得到可执行文件
4运行看结果
初学阶段,你只要会:读懂代码、改几行、重新编译运行。
最小程序(Hello World)
下面几乎每个 C 程序都从这种骨架开始。注释用灰色显示,计算机不会执行它。
#include <stdio.h>
int main(void)
{
// 这是注释,给人看的
printf("Hello, World!\n");
return 0;
}
一行一行拆开
| 代码 | 意思 |
|---|---|
#include <stdio.h> | 引入「标准输入输出」工具箱,才能用 printf |
int main(void) | 主函数。程序从这里开始跑,只能有一个 main |
{ ... } | 大括号包住函数体,表示「要做的事」 |
printf("..."); | 把引号里的文字打印到屏幕;\n 表示换行 |
return 0; | 告诉系统:我正常结束了 |
; | 分号表示一条语句结束,漏了会编译报错 |
自己改一版
把字符串改成你的名字,再运行。这就是编程的日常:改一点 → 看变化。
#include <stdio.h>
int main(void)
{
printf("你好,我是小明\n");
printf("今天开始学 C\n");
return 0;
}
printf 可以打很多次
printf 会从左到右依次输出;想换行就写 \n。
#include <stdio.h>
int main(void)
{
printf("第一行\n");
printf("第二行\n\n"); /* 连续两个换行 = 空一行 */
printf("第三行");
return 0;
}
新手最容易犯的错
对照检查
- 中文分号/引号:必须用英文的
;" - 漏写
;:编译器会在下一行报错 - main 写成 mian:运行入口找不到
- 忘了 include stdio.h 却用了 printf
动手小实验(不要跳过)
- 把 Hello World 改成打印你的城市。
- 故意删掉一个分号,看编译器说什么,再改回来。
- 加一行打印当前心情。
能独立完成这三步,本课就算过关。
本课过关
必做C 程序从哪个函数开始执行?
逐步解析
C 语言规定:程序的入口固定是 main。运行时系统会先做初始化,然后跳到 main 的第一行开始执行。一个可执行程序里只能有一个 main——如果有两个,链接器会报「multiple definition of main」。main 写成 int main(void) 表示:不接收命令行参数,结束后用整数向系统报告状态(0 通常表示成功)。
必做作业
- 默写 Hello World 程序,并用中文写出每一行在干什么。
- 改成打印两行:你的名字、你学 C 的目标。
- 如果把 return 0; 删掉,很多环境仍能运行。想一想:为什么规范里还要写?
先自己写完,再点开看解答
1:默写并口述
#include <stdio.h> /* ① 预处理:把标准输入输出头文件插进来 */
int main(void) /* ② 程序入口,只能有一个 */
{
/* ③ 注释,编译器忽略 */
printf("Hello, World!\n"); /* ④ 格式化输出;\n 是换行 */
return 0; /* ⑤ 向系统报告:正常结束 */
}2:改两行
printf("你好,我是小明\n");
printf("今天开始学 C\n");3:为什么规范还写 return 0:main 返回 int,0 约定表示成功,非 0 可表示失败。写上它与标准一致,也方便以后改成返回错误码;有些环境不写也能跑,但不能依赖「碰巧能跑」。
学完去哪
下一课:程序里数据怎么放——变量和类型。