[C.C++] C语言基础入门超全整理 | 从零基础到上手核心语法

63 0
Honkers 5 小时前 来自手机 | 显示全部楼层 |阅读模式

C语言基础入门超全整理 | 从零基础到上手核心语法
(最适合零基础 + 面试/考研/自学 完整版)

这是一篇真正从零开始、系统性、结构化的C语言核心语法合集。学完这篇,你就能独立写出完整的C程序,理解内存、指针、数组等核心概念,为后续数据结构、操作系统、嵌入式打下坚实基础。

1. C语言概述与开发环境

  • 特点:高效、贴近硬件、可移植性强、指针灵活(也最容易出错)
  • 应用领域:操作系统内核、嵌入式、驱动、游戏引擎、高性能服务器
  • 学习建议:用 VS Code + GCC 或 Dev-C++ / CLion

第一个程序(Hello World)

  1. #include <stdio.h> // 标准输入输出头文件
  2. int main() // 主函数,程序入口
  3. {
  4. printf("Hello, World!\n"); // 输出并换行
  5. return 0; // 返回0表示程序正常结束
  6. }
复制代码

编译运行命令(命令行):

  1. gcc hello.c -o hello # 编译生成可执行文件
  2. ./hello # Linux/Mac 运行
  3. hello.exe # Windows 运行
复制代码

2. 数据类型与变量

基本数据类型(必背大小,32/64位系统)
类型关键字字节数(常见)取值范围(有符号)格式化输出
字符型char1-128 ~ 127%c
短整型short2-32768 ~ 32767%hd
整型int4-2^31 ~ 2^31-1%d
长整型long4或8取决于系统%ld
长长整型long long8-2^63 ~ 2^63-1%lld
单精度浮点float4≈ ±3.4E-38 ~ ±3.4E+38%f
双精度浮点double8≈ ±1.7E-308 ~ ±1.7E+308%lf

变量定义与初始化

  1. int a = 10; // 定义并初始化
  2. int b; // 只定义,未初始化(值随机!危险)
  3. const int MAX = 100; // 常量,定义后不可修改
复制代码

sizeof运算符:求变量或类型占用的字节数

  1. printf("%zu\n", sizeof(int)); // 输出4(或8)
  2. printf("%zu\n", sizeof(a)); // 输出变量a占用的字节
复制代码

3. 常量与宏定义

  1. #define PI 3.14159 // 宏定义(预处理阶段替换)
  2. const double PI2 = 3.14159; // const常量(编译时检查)
  3. enum Color { RED, GREEN, BLUE }; // 枚举常量
复制代码

4. 运算符与表达式

  • 算术运算符:+ - * / %
  • 关系运算符:> < >= <= == !=
  • 逻辑运算符:&& || !(短路特性)
  • 位运算符:& | ^ ~ << >>
  • 赋值运算符:= += -= 等
  • 三目运算符:条件 ? 表达式1 : 表达式2
  • 逗号运算符:,(从左到右,最后一个表达式的值作为结果)

优先级记忆口诀(从高到低):
括号 → 单目 → 算术 → 关系 → 逻辑 → 赋值 → 逗号

5. 程序流程控制

(1)顺序结构

默认执行顺序。

(2)选择结构
  1. if (条件) { ... }
  2. else if (条件) { ... }
  3. else { ... }
  4. // switch(只能判断整数或字符)
  5. switch (表达式) {
  6. case 值1: ... break;
  7. case 值2: ... break;
  8. default: ...
  9. }
复制代码
(3)循环结构(三大循环)
  1. // 1. while(先判断后执行)
  2. while (条件) { ... }
  3. // 2. do-while(先执行后判断,至少执行一次)
  4. do { ... } while (条件);
  5. // 3. for(最常用)
  6. for (初始化; 条件; 增量) { ... }
复制代码

break:跳出当前循环
continue:跳过本次循环剩余语句

6. 数组(Array)

  1. int arr[10]; // 定义数组,元素未初始化
  2. int nums[5] = {1, 2, 3, 4, 5}; // 初始化
  3. int scores[] = {90, 85, 92}; // 自动推断大小
  4. // 二维数组
  5. int matrix[3][4] = {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};
复制代码

数组特点

  • 内存连续
  • 下标从0开始
  • 不能整体赋值(除了初始化时)
  • 作为函数参数时退化为指针

7. 字符串

C语言中字符串就是以 ‘\0’ 结尾的字符数组

  1. char str1[] = "Hello"; // 自动加 '\0'
  2. char str2[10] = {'H','e','l','l','o','\0'};
  3. printf("%s\n", str1); // %s 输出字符串
复制代码

常用字符串函数(需包含 ):

  • strlen():字符串长度(不含’\0’)
  • strcpy():字符串拷贝
  • strcat():字符串拼接
  • strcmp():字符串比较

8. 函数(Function)

  1. // 函数定义
  2. 返回类型 函数名(参数类型 参数名, ...) {
  3. // 函数体
  4. return 返回值;
  5. }
  6. // 函数声明(原型)
  7. int add(int a, int b);
  8. int main() {
  9. int result = add(3, 5);
  10. return 0;
  11. }
  12. int add(int a, int b) {
  13. return a + b;
  14. }
复制代码

参数传递方式

  • 值传递(默认):形参是实参的拷贝,修改不影响实参
  • 地址传递:传递指针或数组名,可修改实参

9. 指针(Pointer)—— C语言灵魂

  1. int a = 10;
  2. int *p = &a; // p 是指向int的指针,存放a的地址
  3. printf("%d\n", *p); // *p 取指针指向的值 → 10
  4. printf("%p\n", p); // 输出地址
  5. // 指针与数组
  6. int arr[5] = {1,2,3,4,5};
  7. int *ptr = arr; // 数组名就是首元素地址
  8. printf("%d\n", *(ptr + 2)); // 输出3
复制代码

指针进阶(后续会重点展开):

  • 指针数组
  • 数组指针
  • 函数指针
  • 指针函数
  • 多级指针

10. 结构体(Struct)

  1. struct Student {
  2. int id;
  3. char name[20];
  4. int age;
  5. };
  6. struct Student s1 = {1001, "张三", 20};
  7. struct Student *ps = &s1;
  8. printf("%s\n", ps->name); // 通过指针访问成员用 ->
复制代码

11. 常用头文件与预处理

  1. #include <stdio.h> // 输入输出
  2. #include <stdlib.h> // malloc、exit等
  3. #include <string.h> // 字符串处理
  4. #include <math.h> // 数学函数
  5. #include <time.h> // 时间
  6. #define DEBUG 1 // 宏定义
复制代码

12. 内存管理初步

  • malloc() / calloc() / realloc() / free()
  • 栈内存 vs 堆内存
  • 野指针、空指针

学习路线建议(从零到上手)

  1. 第1周:数据类型 + 运算符 + 流程控制 + 数组
  2. 第2周:函数 + 字符串 + 指针基础
  3. 第3周:结构体 + 动态内存 + 文件操作
  4. 第4周:综合项目(学生管理系统、通讯录等)

推荐练习项目(按顺序):

  • 九九乘法表
  • 冒泡/选择排序
  • 学生成绩管理系统(结构体 + 数组)
  • 简单计算器(switch + 函数)
  • 字符串处理工具

这篇是C语言基础最完整的核心语法整理。后续我将陆续推出:

  • C语言指针进阶与内存模型
  • C语言数组与指针的那些事
  • 结构体、共用体、枚举深度解析
  • 文件操作 + 动态内存管理
  • C语言常见面试题100道

想立即继续哪一部分?
直接回复:

  • “下一章 指针详解”
  • “学生管理系统完整代码”
  • “C语言常见错误与调试技巧”
  • 或其他你想学的具体内容

从零基础开始,稳扎稳打,C语言学好了,后续所有编程语言都会变得简单!

加油,你已经迈出了非常重要的一步!
随时告诉我下一步想学什么,我继续为你整理超全版。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行