C 语言到底在学什么?
2026-08-13 14:51:49
RAIZ
变量类型数组指针内存编译
C 语言是在学习怎样用代码描述算法,并把数据放进内存让计算机执行。

数据怎么表示步骤怎么组织程序怎么落到机器上执行
1. C 语言不是算法本身
C 语言不是算法本身。
从一堆数里找最大值
把算法写成计算机可以编译、可以执行的形式。
int max = a[0]; for (int i = 1; i < n; i++) { if (a[i] > max) { max = a[i]; }}先假设第一个数最大然后从左到右扫描遇到更大的,就更新最大值扫描结束,max 里就是答案
2. 为什么 C 语言适合讲算法?
int a[5] = {3, 1, 4, 2, 5};下标:0 1 2 3 4数据:3 1 4 2 5
a[2]
访问数据比较数据交换数据移动位置重复这个过程
3. C 程序不是直接运行源代码
我写了 .c 文件,电脑就直接运行这个文件。
源文件 .c-> 预处理-> 编译-> 汇编-> 链接-> 可执行程序

人写的是 C 源代码,机器真正执行的是编译后生成的机器指令。
4. 变量到底是什么?
变量是一个有类型的对象,用来保存某个值。
int age = 20;
age:变量名,方便人理解int:类型,告诉编译器这个对象怎么存、怎么解释20:值,真正要保存的数据

占多少空间能做什么运算按什么方式解释二进制函数参数是否匹配
C 标准没有规定所有平台上的 int 都必须是 4 字节。
5. 程序 = 数据 + 步骤
数据怎么表示?
步骤怎么执行?
int score[6] = {72, 88, 91, 65, 95, 80};int max = score[0]; for (int i = 1; i < 6; i++) { if (score[i] > max) { max = score[i]; }}
数组负责保存一批数据循环负责一个个访问数据if 负责判断是否要更新答案变量 max 负责保存当前找到的最大值
它在帮我表示数据?还是在帮我组织步骤?
6. C 的核心语法,都在服务算法流程
先输入再计算再输出
if (...) { ...} else { ...}for (...)while (...)

数组:把一批同类数据排起来指针:保存地址,指向某个对象结构体:把多个字段绑在一起,描述复杂对象
怎样更好地组织数据和步骤。
7. 指针为什么会成为 C 的难点?
指针把“值”和“地址”这两个层次摆到了你面前。
int x = 10;int *p = &x;
x 里保存的是 10p 里保存的是 x 的地址
指针不是魔法,它只是保存地址的变量。
8. 这一套系列要怎么学?
这个符号是什么意思?这个格式怎么写?这个语法要不要背?

你要对很多错误负责。
它解决什么问题?它在内存里发生了什么?它和算法有什么关系?什么情况下会出错?
9. 最后总结一下
用变量和类型表示数据用数组、结构体等组织数据用顺序、分支、循环、函数组织步骤用编译器把代码变成机器能执行的程序用内存视角理解程序到底在干什么
C 语言是一座桥,一头连着算法思想,一头连着计算机内存和机器执行。
但如果你想真正理解算法、数据结构、内存、指针、程序运行机制,C 是非常好的入口。
注:转载文章来源于网络,版权归原作者或企业所有,侵删!