时代从不缺天才 真正缺少的反倒是敢于面对现实的庸才

前言

作为一名从零开始冲嵌入式的纯小白,我最近跟着教程一路学到了 多变量输入输出。从对着 Hello World 抓耳挠腮,到现在能写出多变量输入输出的程序,一路上踩了数不清的低级坑,也扎扎实实把基础打牢了。

开这篇博客,一来是系统复盘 的核心知识点,方便自己回顾;二来是把所有新手必踩的坑一次性扒干净,帮和我一样的入门选手少走弯路;三来也想慢慢积累粉丝,和大家一起在嵌入式的路上慢慢升级。话不多说,直接上干货!


一、核心知识点一口气梳理

这一段内容是 C 语言最最基础的门面,看似简单,却是后面所有语法的根基,我给大家用最直白的话总结一遍。

1. 计算机语言与 C 语言定位

从机器语言、汇编语言到高级语言,C 语言属于高级语言,接近人类语言,可移植性强,更是嵌入式开发的核心语言。学习 C 语言是嵌入式开发的必经之路,地位不用多讲。

2. 开发环境搭建

我用的是 VS Code + MinGW-w64 组合:

  • VS Code 负责写代码、轻量编辑;
  • MinGW 提供 gcc 编译器,把 .c 源码变成可运行的 .exe。重点记住:安装路径千万别带中文、空格,不然编译必报错。

3. 第一个 C 程序:Hello World

这是所有程序员的起点,结构固定死:

c

运行

#include <stdio.h>
int main()
{
    printf("Hello World\n");
    return 0;
}
  • #include <stdio.h>:头文件,用 printf/scanf 必须加;
  • int main():程序唯一入口,程序从这里开始跑;
  • printf(""):输出内容到控制台;
  • return 0:程序正常结束。

4. C 程序运行流程

源码 .c → 预处理 → 编译 → 汇编 → 链接 → 生成 .exe → 运行 这个并不清楚八股考不考,天知道但现在知道代码要编译才能跑就行。

5. 注释用法

注释不参与运行,只用来解释代码、临时屏蔽代码:

  • 单行注释:// 注释内容
  • 多行注释:/* 注释内容 */养成写注释的习惯,后期回看代码会感谢自己。

6. 变量基础

变量就是内存里的一个 “小盒子”,用来存数据。

  • 格式:数据类型 变量名;
  • 例:int age; 定义一个整型变量 age
  • 必须先定义,再使用,不能直接拿来用。

7. printf 格式化输出

用来把变量的值打印出来,核心规则:

  • %d:整数占位符;
  • 占位符数量 = 后面变量的数量;
  • 变量必须写在双引号外面,用逗号隔开。例:printf("年龄:%d", age);

8. scanf 格式化输入

用来从键盘读取数据,存到变量里:

  • 格式:scanf("%d", &变量名);
  • 必须加 & 符号(取地址);
  • 多个变量:scanf("%d%d%d", &n1, &n2, &n3);,输入用空格 / 回车分隔。

9. 多变量输入输出

可以同时定义多个变量,一次性读取、一次性输出:

c

运行

int n1,n2,n3;
printf("请输入三个数字:");
scanf("%d%d%d",&n1,&n2,&n3);
printf("你输入的是:%d %d %d",n1,n2,n3);

程序从此拥有 “交互能力”,不再是死板的固定输出。


二、新手血泪踩坑实录(建议全文背诵)

我把这段时间所有高频报错、低级错误全部整理出来,每一个都是亲自踩过的坑,新手 99% 都会遇到!

1. main 函数拼写错误

  • 错误写法:int mian()
  • 报错:找不到程序入口,直接跑不起来
  • 原因:main 是固定入口名,拼错编译器不认识
  • 解决:死死记住是 main,不是 mian

2. printf 变量写进双引号里

  • 错误写法:printf("年龄%d,age");
  • 现象:直接输出原文,不显示变量值
  • 原因:引号内是字符串,变量要写在外面
  • 正确:printf("年龄%d", age);

3. % d 占位符和变量数量不匹配

  • 错误写法:printf("我%d,他%d", age);
  • 现象:输出乱码、奇怪数字
  • 原因:2 个占位符,只给 1 个变量,对不上
  • 规则:几个 % d,就跟几个变量

4. 语句末尾漏写分号;

  • 错误:printf("hello")
  • 现象:VS Code 标红,编译直接失败
  • 原因:C 语言每行语句结束必须用 ; 结尾
  • 习惯:写完一行先打分号,再继续写

5. scanf 忘记加 & 取地址符

  • 错误:scanf("%d", age);
  • 现象:编译报错、程序崩溃
  • 原因:scanf 要把数据存到变量地址,不加 & 找不到位置
  • 正确:scanf("%d", &age);

6. 编译提示 Permission denied 权限拒绝

  • 现象:无法生成 .exe,提示权限不足
  • 原因:之前运行的黑窗口没关,.exe 被系统占用
  • 解决:关掉所有控制台黑窗口,重新编译即可

三、学习心得与给新手的建议

第一天学习忙里抽闲 抽了两个小时学习,我最大的感受是:C 语言入门不难,难在细节

大部分报错不是逻辑难,而是手滑、粗心、格式不对。main 拼错、少个分号、变量放错位置、scanf 忘加 &,这些小问题能让你排查半小时。

给和我一样的小白 3 条建议:

  1. 多敲少抄:看会不算会,亲手敲一遍才是自己的;
  2. 遇错不慌:报错先看提示,优先检查拼写、分号、格式;
  3. 坚持记录:像我一样写博客 / 笔记,复盘一次胜过盲目学十节。

嵌入式这条路很长,C 语言只是第一关。把基础打扎实,后面学运算符、循环、分支才不会崩。


结尾

本篇把我目前学的核心知识点新手必踩 6 大错误全部整理完毕,全文干货无废话。

后续我会持续更新 C 语言进阶内容、嵌入式学习笔记、更多踩坑实录,喜欢的小伙伴可以点赞、关注、收藏,我们一起从零变大神!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐