- 2024-11-21在Linux中使用 epoll 处理TCP连接断开问题
在Linux中使用 epoll 处理TCP连接时,默认情况下无法直接检测到网线断开这类物理链路故障。这是因为TCP协议栈的工作机制导致的。当网线断开后,本地TCP协议栈并不能立刻感知到连接已经不可用。在底层网络设备(如网卡)没有向TCP协议栈反馈链路故障的情况下,TCP连接会处于一种看
- 2024-11-16C 语言的内存管理
目录1.简介2.void指针3.malloc()4.free()5.calloc()6.realloc()7.restrict说明符8.memcpy()9.memmove()10.memcmp()1.简介C语言的内存管理,分成两部分。一部分是系统管理的,另一部分是用户手动管理的。系统管理的内存,主要是函数内部的变量(局部变量)。这部分变量
- 2024-11-15c语言sizeof与strlen的区别详细解析
char*p="abcdef";printf("%d\n",sizeof(p));p是指针变量(地址),地址就是地址,大小就是4/8字节printf("%d\n",sizeof(p+1));p+1是b的地址,还是地址4/8字节printf("%d\n",sizeof(*p));*p是‘a’,sizeof(*p)计算的是字符的大小,是1字节printf("%d\n"
- 2024-11-15调用Exe程序并且出现界面 CreateProc(ProcessName:String)
FunctionGetProcessHandleAsName(Name:String):THandle;VarHd,Hs:THandle;dExit:Cardinal;Tmp,Tmp1:String;Lp:TProcessEntry32;beginResult:=0;Lp.dwSize:=sizeof(TProcessEntry32);Hd:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);ifProcess32First(Hd,Lp)thenRepea
- 2024-11-14理解C语言之深入理解指针
目录一、1.内存和地址1.1内存1.2究竟该如何理解编址2.指针变量和地址2.1取地址操作符(&)2.2指针变量和解引⽤操作符(*)2.2.1指针变量2.2.2如何拆解指针类型2.2.3解引⽤操作符2.3指针变量的⼤⼩3.指针变量类型的意义3.1指针的解引⽤3.2指针+-整数3.3v
- 2024-11-12利用索引遍历二维数组
文章目录一、两种二维数组初始化定义方法二、索引遍历的代码一、两种二维数组初始化定义方法intarr[3][5]={ {1,2,3,4,5}, {11,22,33,44,55}, {6,5,4,3,2} };第一种初始化方法比较直观,即大括号内包含3对一维数组,每对一维数组的长度都为5,这种方法适合于一维
- 2024-11-09C++基础学习2-数据类型
////数据类型:////计算机语言-写程序-解决生活中的问题////必须有能力来描述生活中的问题////购物商城-上架商品,价格-15.6元-小数////年龄50岁-整数////C语言-浮点数(小数点)////-整型//////a////'a'-字符a////intmain()//{// //char=字符类型// charch='a';
- 2024-11-04GESP4级考试语法知识(计数排序-桶排序)
整数排列参考程序代码:#include<iostream>#include<cstring>usingnamespacestd;intmain(){ inta[101],n,i,j,k; memset(a,0,sizeof(a));//数组清0 cin>>n;//输入数字个数 for(i=1;i<=n;i++) { cin>>k;//输入一个数字,数字范围肯定
- 2024-11-03简单讲解一下strlen与sizeof(c基础)
strlen是一个函数,用来计算字符串的长度,但不包括字符串末尾的空字符'\0'。它通过从字符串的首地址开始遍历,直到遇到空字符为止,返回在此过程中遍历过的字符个数。""中的内容结束自动包含'\0',而‘’则不包含。srtlen会一直取到'/0',即值是随机的。例如,对于字符串 "hello",strlen
- 2024-11-02代码随想录一刷——49.字母异位词分组
在C语言中确实是有哈希表这个结构体的,因而利用哈希表来解决这个问题C:/** *Returnanarrayofarraysofsize*returnSize. *Thesizesofthearraysarereturnedas*returnColumnSizesarray. *Note:Bothreturnedarrayand*columnSizesarraymustbemal
- 2024-11-02操作符史上最全解析没有之一!!!!!!! (上)
文章目录1.算术操作符2.移位操作符3.位操作符&按位与|按位或^按位异或例题例题:4.赋值操作符-=+=*=/=%=<<=<<=&=|=5.单目操作符!+--&sizeof~++*类型(强制类型转换)6.关系操作符<<=!=\>\>===7.逻辑操作符8.条件操作符9.逗号表达式1.算术操作
- 2024-10-31重温c语言之,7天开整,就是随便的写写,第一天
一:转义字符\t是一个字符,在printf里面,只占一个位置;其他什么的抽象字符,用一个'\'+抽象字符就可以出现;\ddd这个是8进制的,可以转成10进制的,之后参考ASCLL码表即可二:枚举类型的函数与数组一样,有下标,都是从0开始的三:数组可以先不在【】这里面填写多少,但是需
- 2024-10-31生成10个随机数并求平均值 输出小于平均值的个数
#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){srand(time(NULL));//设置种子intarr[10]={0};//在数组中存入10个数字intlen=sizeof(arr)/sizeof(int);//计算长度ints=0;for(inti=0;i<len;i++){intnum
- 2024-10-31指针--结构体指针
结构体:新的类型(由任意若干个基本类型组成)a1,a2,a3是AA这个结构体类型的个体,每个个体都有AA这个结构体里面的两个部件嵌套调用,结构体嵌套数组里的元素就是结构体child类型的数据x4是结构体AA类型的,a1,a2,a3也是结构体AA类型的,同一类型可以相等只看变量声名的时候是无法判
- 2024-10-30关于我、重生到500年前凭借C语言改变世界科技vlog.12——深入理解指针(2)
文章目录1.数组名与地址1.1arr1.2sizeof(arr)1.3&arr2.指针访问数组3.一维数组传参本质4.指针数组5.二级指针希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力!1.数组名与地址有这么一个数组,数组名为arrintarr[10]={1,2,3,4,5,6,7,8,9}int
- 2024-10-26实现动态一维数组和二维数组
实现一维动态数组includeinclude<malloc.h>usingnamespacestd;voidoutput(intn){int*arr=(int*)malloc(sizeof(int)*n);//在c++中,则是int*arr=newint[n];if(arr==NULL)return;for(inti=n;i<=2*n-1;i++){ arr[i-n]=i; cout<<
- 2024-10-25冒泡排序的学习
冒泡排序法的特点:升序排序中每一轮比较会把最大的数下沉到最底,所以相互比较的次数每一轮都会比前一轮少一次。#include<stdio.h>#include<stdlib.h>voidbubblesort(int*A,intsize){ inti,j; for(i=0;i<size-1;i++) { for(j=0;j<size-1-i
- 2024-10-25unix网络编程:解决小型聊天室的用户私发消息问题
今天老师布置了一个在线聊天室用户私发消息的问题思路:在服务端的用户链表中找到要私发的用户名,用其节点里的套接字号发消息,就可以达到私发的效果。运行效果:可以看到,Tom给Bill、Lily群发一个问候消息,Lily私发消息回应Tom。客户端代码:#include<stdio.h>#include<stri
- 2024-10-23排序(一)插入排序,希尔排序,选择排序,堆排序,冒泡排序
目录一.排序1.插入排序2.希尔排序3.选择排序4.堆排序5.冒泡排序二.整体代码1.Sort.h2.Sort.c3.test.c一.排序1.插入排序插入排序基本思想:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序
- 2024-10-2065.C指针---sizeof()函数和strlen()函数常见考
#include<stdio.h>#include<string.h>intmain(){inta[]={1,2,3,4};printf("%d\n",sizeof(a));printf("%d\n",sizeof(a+0));printf("%d\n",sizeof(*a));printf("%d\n",s
- 2024-10-19C 语言 【操作符(下)】
说到这操作符下篇,各位看官老爷可得认真听听喽。主要就是说说这整型提升和算术转换,对于初学者来说可能学到的内容太过浅显,今天就让我呀来带您好好唠唠。 先接着上篇的内容给大家聊聊吧。4、单目操作符( !- + & sizeof ~ -- ++ *)
- 2024-10-18测试题
1.嵌入式软件开发构建阶段的第一步、第二步和第三步分别是(A)A.编译、链接、定址B.链接、编译、定址C.打包、定址、编译D.编译、定址、链接tips:编译:在这一阶段,编译器分析源代码并生成中间或目标代码文件。编译器会进行语法检查、类型检查和优化。链接:链接器将多个编译后的
- 2024-10-18最短路默写
有一无负权有向图。求指定两点间的最短路径。数据范围:所有数据不超过100直接最短路板子写上:#include<bits/stdc++.h>usingnamespacestd;constintN=510;intn,m;intg[N][N],dist[N];intx,y,z,s,t;boolvis[N];intDijkstra(ints,intt){ memset(dist,0x3f,siz
- 2024-10-16②C语言数据类型与变量
数据类型1数据类型概要整形类型描述整数,字符类型描述字符,浮点型类型描述小数。特殊说明:布尔类型需要拥有的头文件(<stdbool.h)布尔类型的变量的取值是:true/false#definebool_Bool#definefalse0#definetrue1实例_Boolflag=true;if(flag)prin
- 2024-10-15C语言——数组超详细版总结
目录1一维数组1.1一维数组的创建与初始化1.2.1一维数组的创建1.2.2一维数组的初始化1.2一维数组的访问1.3一维数组在内存中的存储2二维数组2.1二维数组的创建与初始化2.1.1二维数组的创建2.2.2二维数组的初始化2.2二维数组的访问2.3二维数组在内存中的