02 · 程序结构与基础语法

2026.09.27 · 🟢 易

令牌(Token)—— 编译器眼里最小的有意义单位

关键字 · 标识符 · 常量 · 字符串字面量 · 运算符 · 分隔符

一个完整程序的结构

#include <stdio.h>                 // 1. 预处理器指令(头文件包含)
#define PI 3.14159                 // 2. 宏定义

int add(int a, int b);             // 3. 函数声明(原型)

int main(void) {                   // 4. 主函数:唯一入口
    int num1, num2, sum;           // 5. 变量声明
    printf("Enter two integers: ");
    scanf("%d %d", &num1, &num2);  // 6. 用户输入(注意 & 取地址)
    sum = add(num1, num2);         // 7. 函数调用
    printf("Sum: %d\n", sum);
    return 0;                      // 8. 返回语句
}

int add(int a, int b) {            // 9. 函数定义
    return a + b;
}

分隔符与注释

  • 分号 ; 是语句结束符 —— 最容易漏的就是它。
  • {} 代码块、() 条件/参数、[] 数组下标、, 分隔。
  • 注释两种:// 单行(C99 起)、/* 多行 */。注释不能嵌套。

标识符规则

  • 只能由字母、数字、下划线组成,首字符不能是数字。
  • 区分大小写:Manpower ≠ manpower。
  • ❌ 非法:2abc(数字开头)、my-name(有连字符)、float(关键字)。
  • 以 __ 开头的名字被编译器/标准库保留,别用。

常量两种写法(推荐 const)

const int MAX = 100;       // 有类型,编译期检查,推荐
#define MAX 100            // 宏,纯文本替换,无类型检查

字符串字面量的本质(Java 程序员最该记住的一条)

"Hello"   // 内存里实际是 'H','e','l','l','o','\0'  —— 6 个字节!
  • 末尾自动加 '\0'(null 终止符),这是 C 字符串的全部秘密。
  • 字面量存在只读区,不可修改;要改就复制到字符数组。
  • 'A'(字符常量,1 字节) 和 "A"(字符串,2 字节 'A'+'\0')不是一回事。

运算符分类(详见 05-运算符)

算术 + - * / % · 关系 == != > < · 逻辑 && || ! · 位 & | ^ ~ << >> · 赋值 = += · 自增自减 ++ -- · 其他 sizeof ?: & * -> .

关联

01-C简介与环境 · 03-数据类型与变量 · 05-运算符 · 11-字符串