当前位置: 首页 > 后端技术 > PHP

重学C语言

时间:2023-03-29 22:58:55 PHP

重学C语言这几年一直在做web开发,从PHP到Go,从数据库到缓存。随着技术的深入,从非科班转写代码,感觉越来越看不懂源码和技术细节。没有扎实的基础知识,很难继续提高。打算近期重新学习C语言,巩固一下基础知识。步骤不是为了学校考试,我也没有花太多时间背语法。过完语法就开始手写代码,遇到问题再查资料解决。如果你有其他语言的语法基础,就不用太担心语法问题,重点关注C语言与其他语言的不同之处。可能有人会觉得看视频比看书要花更多的时间,但我个人更喜欢看视频教程。一方面是因为看视频可以产生特定的画面,加深记忆。另一方面,每天的通勤时间都很长。坐地铁需要将近50分钟。不能浪费这个时间。带着Kindle看电子书,在嘈杂的地铁里无法集中注意力,尤其是看枯燥的技术书籍。当然,不仅仅是看完视频,书是后续的补充。B站有很多自学视频资源,可以充分利用。代码实战“只说不看假把戏”。编程是一门实践性的学科,只有在不断实践的过程中,才能真正把它熟记于心,在不断的挖坑、踩坑、填坑中成长。用C语言写一个简单的web服务器,支持HTTP和Tcp协议。阅读Redis等开源项目的源码,加深理解。记录的心得在实践和学习过程中以文章的形式不断输出。比较C语言和高级语言的特点,也会推荐好的教程。主要目标Stage1:内存分区、函数调用模型数据类型、变量含义内存特性四大领域函数调用模型内存操作函数宏定义和预处理Stage2:指针高级指针使用指针的基本概念步骤指针介绍特性赋值指针和多级指针作为函数参数以及使用逻辑运算符使用指针操作字符串const类型修饰符位嵌套二级指针浅拷贝深拷贝第三阶段:函数指针和回调函数封装和设计思路函数指针的三种方式定义回调函数第四阶段:链表的数据结构和基本概念链表单链表的相关操作第五阶段:递归函数递归函数的概念递归的使用第六阶段:数据结构和算法大O表示法基本概念线性表序列初始存储和链式存储概念线性表顺序存储(数组)线性表的链式存储(链表)队列序和链式存储栈序和链式存储二叉树基本操作常用的排序算法Stage7:接口封装和设计函数封装design解耦设计理念这个阶段可以掌握模块实现和业务分离的思想核心能力:掌握C语言中字符串、一串数组、二维数组的用法;掌握一级指针、二级指针、三级指针的高级用法;理解N级指针、指针数组、数组指针的概念;学习如何使用C语言对结构体和文件进行接口包设计显示可解决的问题:可以自己开发小程序,比如像Snake这样用C语言编写的程序;应用C语言界面包设计的方法进行企业项目开发总结我学习C语言的目的不是为了在工作中用它来开发web应用程序,而是帮助我更深入地理解计算机的工作原理。前技术大佬说过一句话,“C语言开发者把其他语言看成语法糖”。与你分享。微信公众号