写在前面

时隔一年,去年的1024,我从0开始再度学习C语言,从 初识C语言 到 实用调试技巧,中间时隔9个月的时间,带领大家从头开始将C语言从入门到进阶的所有知识点学习了一遍,这些都是最基本、也是最核心的知识,希望在学习完这些内容,读者可以认识到C语言重要性,为今后的Coding之路打下坚实的基础

从今年的1024开始,有了扎实的C语言基础后,我将去认真再度学习《数据结构》、《计算机组成原理》、《操作系统》、《计算机网络》 这四门大学期间最核心的课程,也今后的职业生涯打下稳固的计算机基础

目录导航

  • 前言
  • 配套教程推荐
  • 文章列表
    • Part 1:初识C语言
    • Part 2:分支和循环语句
    • Part 3:函数
    • Part 4:数组
    • Part 5:指针
    • Part 6:操作符
    • Part 7:数据的存储
    • Part 8:字符串 + 内存函数
    • Part 9:自定义类型
    • Part 10:动态内存管理
    • Part 11:文件操作
    • Part 12:程序环境和预处理
    • Part 13:调试技巧
  • 写在最后

前言

大家好,历时9月(2022.10.18 ~ 2023.7.18)《C生万物》专栏 更新完毕 ,本专栏免费向广大读者开放,欢迎订阅学习

专栏简介:

  • 本专栏着重于打造从C语言初阶到进阶的一整套学习流程,文章通俗易懂,细致到位,富含经典教学案例。可帮助广大博友可以随时随地重拾最本质的C语言,打好这一块的基础

友情须知:

  • C语言是很多计算机专业大学期间所学习的第一门语言,也可能是大家所接触的第一门编程语言,它属于面向过程的,提供了许多底层的功能和控制,可以使我们直接操作计算机硬件资源。在学习的时候,大家可能都是初出茅庐,虽带着一份求知的心理认真的学习,但由于学校老师的教学风格不适,再加上刚刚踏入大学的校园,所以懵懵懂懂地就过了这门课程,去学习其他《面向对象》的语言了,例如:Java、C++、C#等等。
  • 可是呢,这门最重要的基础课程,这块根基却没有好好地打牢,也就导致了很多同学在学习后面的语言时对一些循环的控制、操作符的运用、函数的传参等等都是一知半解,更别说令人生畏的【指针】了。嘴里都说 C生万物, 但却说不出口是那一块生出来的,此时的你,应该问问自己:是否该把C语言的基础好好打一打呢? 再认真仔细学习过C语言再去学习其他语言的时候,就能感受到【C生万物】这几个字的魅力了

适合人群:

  • C/C++软件开发人员、在校大学生、其他领域的创作者(不论初学或已学)

配套教程推荐

有关配套的教程视频推荐看【2023版最新鹏哥C语言入门到进阶】,鹏哥是博主认为C语言教得最好的老师,大家快去看看

C语言程序设计从入门到进阶【比特鹏哥c语言2023完整版视频教程】(c语言基础入门c语言软件安装C语言指针c语言考研C语言专升本C语言期末计算机二级C语言c语言

文章列表

Part 1:初识C语言

第一篇:C生万物 | 底层之美 · 莫过于C【1024,从0开始】

Part 2:分支和循环语句

第二篇:C生万物 | 分支和循环语句【内含众多经典案例】

Part 3:函数

第三篇:C生万物 | 函数的讲解与剖析【内附众多案例详解】

第四篇:C生万物 | 反汇编深挖【函数栈帧】的创建和销毁

Part 4:数组

第五篇:C生万物 | 窥探数组设计的种种陷阱

Part 5:指针

第六篇:C生万物 | 指针入门到进阶全方位覆盖教程

Part 6:操作符

第七篇:C生万物 | 操作符汇总大全【庖丁解牛,精细讲解】

Part 7:数据的存储

第八篇:C生万物 | 深度挖掘数据在计算机内部的存储

Part 8:字符串 + 内存函数

第九篇:C生万物 | 字符串函数与内存函数解读【附英译中图解】

Part 9:自定义类型

第十篇:C生万物 | 万字细说C语言结构体

第十一篇:C生万物 | 校招热门考点 —— 结构体内存对齐

第十二篇:C生万物 | 聊聊枚举与联合体的用法

Part 10:动态内存管理

第十三篇:C生万物 | 细说动态内存管理【附经典笔试题】

Part 11:文件操作

第十四篇:C生万物 | C语言文件操作指南汇总【内附文件外排序源码】

Part 12:程序环境和预处理

第十五篇:C生万物 | 详解程序环境和预处理【展示程序编译+链接全过程】

Part 13:调试技巧

第十六篇:C生万物 | 程序员必备实用调试技巧分享

写在最后

还是老样子,得总结一下

✨【初识C语言】:我们首先对所要学习的整体内容做了一个鸟瞰,制定了周密的学习计划

✨【分支和循环语句】:我们学到了在编写代码的时候不仅是按照一个个流程执行下来而且需要去判断各种不同的情况,通过if...else分别去做不同的处理;有些代码不能一句句地执行,通过循环来进行控制可达到事半而功倍的效果,但是要注意循环的结束条件,陷入死循环可就不好了

✨【函数】:这一块我们学习到了如果将一个功能进行封装,从而达到功能复用的效果。不仅是要学会调用各种各样的库函数,而且也需学会去自行封装并实现函数的传参,除此之外,学习函数递归可以帮我们将大事化小、小事化了,只是在理解这一块需要多画画图,最后,函数栈帧的的学习也让我们更加清楚一些底层的传参机制,清楚编译器都是怎么去执行这些复杂的逻辑

✨【数组】:面对零散的数据,我们可以采用数组的形式将其组织起来,学习了什么是一维数组、二维数组,对数据的掌控又更上一层楼。当然在使用的时候还是要警惕 越界的情况,这一点我们需要对边界条件加大敏感程度

✨【指针】:最令广大博友头疼的一块指针,我花了近两个月的时间做了整理,包含从 指针初阶 时的基本概念学习,了解指针是什么、怎么定义及其使用,如何将指针与数组结合起来使用;到 指针进阶 时的各种 指针常量与常量指针、指针数组与数组指针、指针函数与函数指针以及回调函数的使用,接下去我们又通过一些历年的笔试真题对所学的知识做了一个很好地回顾,也提升了我们对指针的理解

✨【操作符】:光会组织数据还不够,我们在对数据做一些处理的时候,就需要使用到各种各样的操作符,不仅是要灵活地去使用这些操作符,而且还要清楚各个操作符之间的优先级关系,才能在遇到一些实际的场景而游刃有余

✨【数据的存储】:C语言偏向底层,如若是想要学懂的话还需要去了解一些更为深层次的内容,文章中我们分别学习到了整型数据、浮点型数据在计算机内部是如何存储的,其中比较重要的就是大小端这一块,清楚数据在外界和在内存中有何不同,还有一点的话就是数据的存储范围:包括像 原、反、补码的表示范围,有符号数和无符号的表示范围。浮点数这一块的话仅做了解

✨【字符串 + 内存函数】:函数我们在上面有讲到过,此模块我们是专门针对操作字符串和内存的一些函数做了讲解,也带着大家去模拟实现了它们的底层代码,为的就是可以将其内部的原理掌握地更加牢固,希望读者在学习的时候也可以做到多多实践、多多练习

✨【自定义类型】:对于像charintdouble这些都称作为是内置类型,但是呢在现实生活中我们所遇到的一些事物本身就有个各式各样的类型,于是我们就要考虑将这些不同的数据给封装了起来,将其称作为 结构体,学会封装数据也是非常重要的,这点在C++中可能展现地多一些;除此之外,枚举 也给我们带来了很大的便捷,使我们可以将一些相同意思的常量封装起来,便于维护和管理;联合体 亦是一块亮点,所有成员公用同一块空间使得它们之间产生了不可分割的关联性

✨【动态内存管理】:在使用数组的时候,我们经常会因为空间的大小限制导致需要提前开好一块很大的空间,这也就使得灵活性得到了下降,但有了动态内存之后,我们无需去考虑空间大小的问题,熟练应用malloccallocreallocfree后,还要对常见的动态内存错误有一个认识,否则在使用的时候就会出现一些纰漏。最后呢再去了解一些底层的结构,给读者普及了一下C/C++的内存分布,分别是有栈区、堆区、静态区、常量区、共享区,清楚哪些数据存储在其所对应的区域可以让我们在写代码的时候脉络更清楚

✨【文件操作】:为了做到数据的持久化存储,我们需要学习文件的相关操作,清楚一个文件如何去打开和关闭,以及各种打开方式fputc和fgetcfputs和fgetsfprintf和fscanffwrite和fread,还有一些随机读写的形式,如:fseekftellrewind这些,继续了解了文件缓冲区的概念后,让我们与计算机内部如何进行交互,信息又是怎么显示到屏幕上的

✨【程序环境和预处理】:一个.c的源文件怎么变成到.exe可执行文件,这一块我们学习了 编译 + 链接 这一块的知识就可以了很清楚了,对于翻译环境而言分为 [编译] + [链接] 两部分,而前者又可以分为 [预编译] + [编译] + [汇编] ,清楚每个阶段所要做的事,在Linux平台下观看为最佳接下去又来对 预处理 做了一个详细的介绍,这一块主要是教会我们如何去定义一些程序还未启动时所存在的一些常量、宏

✨【调试技巧】:学会了如何去书写代码,但总是会遇到一些问题,此时一个扎实的调试功底可以给你带来无穷的收益,清楚如何去查看一些调试过程中的信息,熟练掌握调试快捷键F5F9F10F11Ctrl + F5能让我们在调试的过程中专注于自己的代码,而不是在那捣鼓VS。不过呢拥有一个优秀的代码素养可以让你的程序变得更加健壮,而不需要在写完代码的时候出现一堆的BUG然后慢慢地一个个调试。所以希望大家在书写代码的时候可以做到细致行事、全方面考虑问题

好,以上就是对本专栏《C生万物》的一个总体回顾,希望我的文章可以帮助到正在阅读的你