(2024.2.5-2024.2.18)C语言学习小结
这两周主要围绕《Head first C》这本书展开C语言学习,同时尝试学习DES密码算法C程序。
基本内容
《Head first C》学习的内容基本上就是进程与通信、网络、线程这块。
以下是思维导图:
实践练习
除了书上的一些小练习之外,我也实践写了HFC的C语言实验室2的程序,一波三折,详见C代码实践——《Head first C》C语言实验室2
同时我也尝试着跑通并理解DES密码算法C程序,进展有限,准备等下周再详细讲。
遇到的问题与解决、经验教训等
写C语言实验室2时遇到的问题不少,C代码实践——《Head first C》C语言实验室2写了其中遇到的一些关键问题及解决办法,以下是学习《Head first C》内容时遇到的问题
-
问题1:对套接字的理解仍然不够清晰,不知道为什么服务器要创建两个套接字
-
解决1:与GPT沟通后明白了,套接字本质上还是数据流,提供了一个相对简单的接口来发送和接收数据。服务器要先创建一个主监听套接字用于接收其他客户端的连接请求,而后才通过创建连接套接字具体连接客户端进行数据传输。
-
问题2:讲线程时对void指针不太理解,当时想:void不是空类型吗怎么还能有指针呢
-
解决2:与GPT沟通后明白了,void指针实际还是指针,只不过不指明对应数据类型,更为灵活自由,当想要在线程中传递整型值时,因为long大小和void指针大小相同,可以用long保存void指针变量。
下周计划
根据本周学习情况与后续时间情况,我暂定下周计划继续推完《Head first C》,尽可能学习密码算法C语言代码,同时推进论文。