首页 > 其他分享 >(2024.2.5-2024.2.18)C语言学习小结

(2024.2.5-2024.2.18)C语言学习小结

时间:2024-02-18 18:00:11浏览次数:28  
标签:2024.2 18 void Head C语言 接字 指针 first

这两周主要围绕《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语言代码,同时推进论文。

标签:2024.2,18,void,Head,C语言,接字,指针,first
From: https://www.cnblogs.com/zzz12138/p/18019729

相关文章

  • 2024-02-18-物联网C语言(6-动态内存申请)
    6.动态内存申请6.1动态分配概述​ 在数组一章中,介绍过数组的长度是预先定义好的,在整个程序中固定不变,但是在实际的编程中,往往会发生这种情况,即所需的内存空间取决于实际输入的数据,而无法预先确定。​ 为了解决上述问题,C语言提供了-些内存管理函数,这些内存管理函数可以按需......
  • 亚马逊云ec2-user安装node-js-18.16.0
    1,下载vnm管理工具curl-o-https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh|bashexportNVM_DIR="$HOME/.nvm"[-s"$NVM_DIR/nvm.sh"]&&\."$NVM_DIR/nvm.sh"#Thisloadsnvm[-s"$NVM_DIR/bash......
  • 2024-02-17-物联网C语言(5-指针)
    5.指针5.1关于内存那点事存储器:外存和内存 外存:长期存放数据,掉电不会丢失数据,如硬盘、光盘、ROM等 内存:暂时存放数据,掉电数据丢失,如RAM,DDR等内存:物理内存和虚拟内存物理内存:实实在在的存储设备虚拟内存:操作系统虚拟出来的内存操作系统会在物理内存和虚拟内存之间做映......
  • 海亮02/18杂题
    海亮02/18杂题个人题单T1link题意给你一个长度为\(n\)的数列,然后给你\(q\)个交换或不交换操作,你可以选择操作或者不操作,问所有情况下逆序对的总和。答案需要对\(10^9+7\)取模。\(n\leq3000\),\(q\leq3000\)。题解发现一个问题,对于操作执不执行很难描述,怎么办?......
  • SMU Winter 2024 div2 ptlks的周报Week 3(2.12-2.18)
    这周主要加强了对知识点的掌握。P10161[DTCPC2024]小方的疑惑10从题目可以得知a个连续括号贡献为a(a+1)/2,代价为2a。要求总贡献恰为k,且代价不高于n。一开始我想到了模拟,先取一个贡献低于k最大的a,剩下的再直接在外面套括号,结果wa。又想到可以分出多个a来组成k,就用递归,每次......
  • Ubuntu18.04服务器局域网定时同步文件
    一、文件同步首先我们先了解一下rsync命令。rsync可以在本地系统之间或本地系统与远程系统之间同步、复制和备份文件和目录。rsync通过比较源与目标文件的差异来最小化数据传输,从而提高效率和速度。rsync命令有许多可选的参数,下面简单列一下常见的几个参数:-a:以归档模......
  • C语言运算符顺序及优先级
    逗号运算符是优先级最低的。通常单目运算符优先级大于双目。三目最小。但需注意,双目运算符中的赋值运算符优先级是最低的。在C语言中,大部分运算符都是从左向右进行计算的,但是也存在一些自右向左的运算符。其中最常见的自右向左的运算符是赋值运算符 = 和逗号运算符 ,。赋......
  • AT_abc318_f [ABC318F] Octopus
    首先考虑如何判断当头部位于\(k_0\)时是否可以抓住所有\(n\)个宝物。显然可以排序后贪心将触手与宝藏配对。然后考虑怎样的\(k_0\)作为分界点,即头部位于\(k_0\)满足条件而头部位于\(k_0+1\)不满足条件和头部位于\(k_0\)不满足条件而头部位于\(k_0+1\)满足条件的所......
  • CF1879D Sum of XOR Functions
    记前缀异或和数组\(s\),于是题目中的\(f(l,r)\)可以被表示成\(s_r\opluss_{l-1}\),转化为求\(\sum\limits_{l=1}^n\sum\limits_{r=l}^n(s_r\opluss_{l-1})\times(r-l+1)\)。再记录\(4\)个值,\(cnt_0,cnt_1,sum_0,sum_1\)分别表示当前已经出现过的\(0/1\)的个数,出......
  • CF1872G Replace With Product
    刚看到这道题的时候就第一感觉应该是乘积比加和更优。发现如果序列中所有数的乘积比\(2\times10^{14}\)更大,在区间左右端点不为\(1\)时,全乘起来一定更优。若左右端点为\(1\),则找到两端的第一个非\(1\)位置即为答案。否则,发现\(2^{49}>2\times10^{14}\),则区间内非\(1\)......