C 语言书
模块一 · 入门基础 / 第 01 课

01 · C 是什么,程序怎么跑

入门 20 分钟 跳到过关题
学习目标
  • 明白 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

动手小实验(不要跳过)

  1. 把 Hello World 改成打印你的城市。
  2. 故意删掉一个分号,看编译器说什么,再改回来。
  3. 加一行打印当前心情。

能独立完成这三步,本课就算过关。

本课过关

必做

C 程序从哪个函数开始执行?

必做作业
  1. 默写 Hello World 程序,并用中文写出每一行在干什么。
  2. 改成打印两行:你的名字、你学 C 的目标。
  3. 如果把 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 可表示失败。写上它与标准一致,也方便以后改成返回错误码;有些环境不写也能跑,但不能依赖「碰巧能跑」。