C语言语法基础语法介绍

C 语言简介

C 是一种:

  • 面向过程(Procedure-Oriented)
  • 编译型(Compiled)
  • 静态类型(Static Typed)
  • 接近底层(Low-level)
  • 高性能

的编程语言。

由 Dennis Ritchie 在贝尔实验室开发。

现代操作系统、数据库、嵌入式系统、大量编程语言(如 C++、Java、Go、Rust)都深受 C 影响。


1. Hello World

c 复制代码
#include <stdio.h>

int main() {
    printf("Hello World\n");
    return 0;
}

2. 变量与赋值

基本变量

c 复制代码
int age = 18;
float price = 9.9;
char grade = 'A';

变量修改

c 复制代码
int x = 10;
x = 20;

常量

c 复制代码
const int MAX = 100;

3. 数据类型

数字类型

类⁠型 说⁠明
int 整⁠数
float 单⁠精⁠度⁠浮⁠点
double 双⁠精⁠度⁠浮⁠点
char 字⁠符
long 长⁠整⁠数

示例

c 复制代码
int a = 10;
double pi = 3.14159;
char c = 'H';

4. 算数运算

c 复制代码
int a = 10;
int b = 3;

printf("%d\n", a + b); // 加
printf("%d\n", a - b); // 减
printf("%d\n", a * b); // 乘
printf("%d\n", a / b); // 除
printf("%d\n", a % b); // 取余

5. 逻辑运算

运⁠算⁠符 含⁠义
&& 与
! 非

示例

c 复制代码
int age = 20;

if (age > 18 && age < 30) {
    printf("青年\n");
}

6. 比较运算

运⁠算⁠符 含⁠义
== 等⁠于
!= 不⁠等⁠于
> 大⁠于
< 小⁠于
>= 大⁠于⁠等⁠于
<= 小⁠于⁠等⁠于

7. if 判断

c 复制代码
int score = 85;

if (score >= 90) {
    printf("优秀\n");
} else if (score >= 60) {
    printf("及格\n");
} else {
    printf("不及格\n");
}

8. switch 分支

c 复制代码
int day = 2;

switch(day) {
    case 1:
        printf("星期一");
        break;

    case 2:
        printf("星期二");
        break;

    default:
        printf("未知");
}

9. for 循环

c 复制代码
for (int i = 0; i < 5; i++) {
    printf("%d\n", i);
}

10. while 循环

c 复制代码
int i = 0;

while (i < 5) {
    printf("%d\n", i);
    i++;
}

11. 数组(C 的"列表")

C 没有真正的 List。

通常用:

  • 数组(Array)
  • 链表(Linked List)

代替。


数组

c 复制代码
int nums[5] = {1,2,3,4,5};

printf("%d\n", nums[0]);

遍历数组

c 复制代码
for (int i = 0; i < 5; i++) {
    printf("%d\n", nums[i]);
}

12. 字符串

C 没有真正的字符串类型。

本质是:

c 复制代码
char str[] = "hello";

实际上是:

复制代码
['h','e','l','l','o','\0']

\0 表示字符串结束。


13. 结构体(Struct)

C 没有 class。

通常使用 struct。

c 复制代码
struct Person {
    char name[20];
    int age;
};

使用结构体

c 复制代码
struct Person p;

p.age = 18;

14. 函数

定义函数

c 复制代码
int add(int a, int b) {
    return a + b;
}

调用函数

c 复制代码
int result = add(3, 5);

15. 指针(C 最核心特性)

6

指针是 C 最重要、最底层的概念。


地址

c 复制代码
int a = 10;

printf("%p", &a);

&a 表示变量地址。


指针变量

c 复制代码
int *p = &a;

含义:

复制代码
p 保存 a 的内存地址

通过指针修改变量

c 复制代码
*p = 20;

等于:

c 复制代码
a = 20;

16. 指针为什么重要

因为:

  • 数组
  • 字符串
  • 函数参数
  • 动态内存
  • 文件系统
  • 操作系统

本质都依赖指针。


17. 动态内存 malloc/free

c 复制代码
#include <stdlib.h>

int *arr = malloc(5 * sizeof(int));

free(arr);

含义

复制代码
malloc:
    在堆内存申请空间

free:
    手动释放内存

18. C 的"集合"和"Map"

C 标准库没有:

  • Set
  • Map
  • Dictionary

通常需要:

  • 自己实现
  • 使用第三方库

常见替代方案

需⁠求 C中⁠的⁠实⁠现
List 数⁠组 / 链⁠表
Set 哈⁠希⁠表
Map 哈⁠希⁠表
Queue 队⁠列⁠结⁠构
Tree 二⁠叉⁠树

19. 文件操作

c 复制代码
FILE *fp = fopen("test.txt", "r");

fclose(fp);

20. 异常处理

C 没有:

复制代码
try / catch

常见方式

返回错误码

c 复制代码
int divide(int a, int b) {
    if (b == 0) {
        return -1;
    }

    return a / b;
}

使用 errno

c 复制代码
#include <errno.h>

21. typedef(类型别名)

c 复制代码
typedef unsigned long ulong;

22. enum 枚举

c 复制代码
enum Color {
    RED,
    GREEN,
    BLUE
};

23. 宏 define

c 复制代码
#define PI 3.14

宏函数

c 复制代码
#define SQUARE(x) ((x) * (x))

24. 头文件

c 复制代码
#include <stdio.h>

作用:

复制代码
导入函数声明

类似:

  • Java import
  • Python import

25. C 的编译过程

6

复制代码
.c源文件
   ↓

预处理
   ↓

编译
   ↓

汇编
   ↓

链接
   ↓

可执行文件

26. GCC 编译

Linux/macOS

bash 复制代码
gcc main.c -o app

运行:

bash 复制代码
./app

Windows(MinGW)

bash 复制代码
gcc main.c -o app.exe

27. C 最特殊的地方(重点)

① 指针

这是 C 的灵魂。

c 复制代码
int *p;

很多现代语言都把这个东西隐藏了。


② 手动内存管理

c 复制代码
malloc()
free()

程序员自己管理内存。

优点:

  • 极致性能
  • 极致控制

缺点:

  • 容易内存泄漏
  • 容易崩溃

③ 非常接近硬件

C 可以:

  • 操作内存
  • 操作寄存器
  • 操作CPU
  • 写驱动
  • 写操作系统

④ 没有真正的"高级特性"

C 没有:

  • 类
  • 泛型
  • 反射
  • GC垃圾回收
  • async/await

因此:

复制代码
简单
但底层

28. C 与其它语言的关系

5

很多语言语法都来自 C:

语⁠言 与 C 的⁠关⁠系
C++ C 的⁠扩⁠展
Java 模⁠仿 C 语⁠法
Go 简⁠化⁠版 C 风⁠格
Rust 安⁠全⁠版 C
JavaScript C 风⁠格⁠语⁠法

29. 学习 C 最重要的几个概念

建议重点掌握:

  1. 指针
  2. 内存
  3. 数组
  4. 函数
  5. struct
  6. 编译过程
  7. malloc/free

30. 一句话总结

C 语言的本质:

复制代码
"用最少的抽象,
直接控制计算机硬件。"

它既是:

  • 现代编程语言之父

也是:

  • 操作系统世界的基础语言。
相关推荐
m0_719640871 小时前
2026年适合课题研究的具身智能实验室建设方案有哪些可参考?
经验分享·算法
水饺编程1 小时前
第2章:Linux 基础,在 root 中创建用户账号
linux·c语言·汇编·1024程序员节
LMT流氓兔1 小时前
第五单元——第9课:防止同一次操作重复执行
java·服务器·数据库·算法·ai·langchain
zhangdaliangmvp1 小时前
快速排序的学习理解:从基础分治到三路划分优化
c++·学习·算法
code2cat2 小时前
Java高级篇之JDBC:连接数据库,完成查询、更新与事务
java·开发语言·数据库
乐迪信息2 小时前
AI算法盒子船体烟火检测:港口火灾早预警
人工智能·深度学习·算法
cu1432 小时前
细谈IT6563的具体功能与其应用
c语言·c++·单片机·嵌入式硬件
hzxxxz2 小时前
PHP引擎两个高危漏洞复盘:计数顺序与旧地址缺陷的机理与处置清单
开发语言·php
马立杰2 小时前
PHP 未授权 RCE 应急响应:CVE-2026-109618 CVE-2026-109619 排查与加固实战
android·开发语言·php