C/C++
C/C++
IVever_KB
这个作者很懒,什么都没留下…
展开
-
【基础知识】TCP三次握手四次挥手|unsigned int与int|struct结构体class类大小计算
TCP,UDP不同详解,还有一些其他的1.TCP三次握手与四次挥手TCP报文格式上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。 (3)标志...原创 2019-08-06 09:22:34 · 315 阅读 · 0 评论 -
【C++】作业【七】笔试 cat|死锁|网络字节序|数组与指针区别|IP数据包与地址|多线程进程应用区别|linux内核函数|驱动并发互斥
1.下面哪个命令可以查看file1文件的第300-500行的内容?head -n k # 打印前k行head -n -k # 打印除最后k行外的所有内容tail -n k # 打印最后k行tail -n +k # 从k行开始打印直接通过sed -n命令获取指定范围的内容,其中p :列印,亦即将某个选择的数据印出。...原创 2019-07-23 15:05:08 · 355 阅读 · 0 评论 -
【C++】作业【六】笔试 进程线程| &&与|| |OSI七层|指针|union联合体|宏函数|创建进程函数
1.进程和线程的区别进程是资源分配的最小单位,线程是程序执行的最小单位,CPU调度的最小单位。 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。 线程之间的通信更方便,同一进程下的...原创 2019-07-23 14:59:38 · 225 阅读 · 0 评论 -
【C++】作业【二】memcpy,size_t,void *,倒输整数,单词顺序倒
1、原型:void *memcpy(void *dest, const void *src, size_t n);功能:从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中;memcpy没有考虑重叠的情况;首先要了解一下size_t的类型:size_t是一些C/C++标准在stddef.h中定义的。这个类型足以用来表示对象的大小。size_t的...原创 2019-07-23 15:07:05 · 311 阅读 · 0 评论 -
【C++】strlen,strcmp,atoi等字符串函数
包括strlen、strcmp、strcpy、strcnpy、strcat、strstr、strchr、atoi等字符串处理函数关于头文件:在C++中应包含<string.h>(C版本头文件)或<cstring>(C++版本头文件)(两者互相对应,我猜内容大致一样?)。<string>是C++定义的std::string所使用的文件,是string类的头文件...原创 2019-08-11 18:48:17 · 439 阅读 · 0 评论 -
【队】用链表
特别要注意的是,新设定两个指向链表结点的指针,rear和front,其中链表的结构体和指针的结构体定义如下其中指针的结构体是无名结构体。有规定如果结构体中的成员,是一个指向结构体的指针,那么该结构体一定要是本结构体。但是这个无名结构体并不符合这个规定(问了老师我还是不明白为什么,虽然运行没问题,我把无名结构体又加了名字变成有名结构体还是运行没问题。。。)老师甩了这个链接给我:无名结构体...原创 2019-02-19 17:29:51 · 175 阅读 · 7 评论 -
c语言作业【第八次】
(相同作业的人)https://blog.csdn.net/Rayyyyyyy/article/details/84786506https://blog.csdn.net/csdnoyns/article/details/84956747例.简述Makefile的作用百度百科:makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于...转载 2019-02-13 22:04:42 · 201 阅读 · 0 评论 -
【队】用数组(老师写的,我改正了一点)
老师为了统一函数的形参都用的二级指针,但其实有的一级指针就可以了重点是判断队是空(is_empty)是满(is_full)的函数,还有写入数(push_qeuce)的函数,写入数的函数要判断当队不满但是已达到数组上限是要整个前移。其中buttom所代表的下标+1开始到top所代表的下标结束有数字存放(或者说这些数字是有效的),当数字出队时,buttom先后移再输出指向的数字,但这个数字之后...原创 2019-02-19 10:49:32 · 351 阅读 · 0 评论 -
【栈】用链表
链表,队,栈在程序结束前都要注意有无释放表头结点。这个是带表头结点的,即head指针指向表头,表头中不存放数据,表头下一个指针指向第一个数据包括is_malloc_ok create_node create_stack push_stack pop_stack is_empty gettop_stack empty_stack release_stack#in...原创 2019-02-18 22:11:11 · 222 阅读 · 1 评论 -
【二叉树】构建,递归与非递归的前/中/后序遍历
参考https://www.cnblogs.com/polly333/p/4740355.html#好像没在网上看到有释放二叉树结点的函数?但是毕竟用到了malloc,懒得写了,想了一下思路大概是借用递归的前序遍历函数,将printf语句改为push语句将结点压入栈。最后将栈里面的结点依次释放就可以了。或者不用入栈,直接用后续遍历递归的方式释放(把printf改为释放),比前面的更简单一点(如...原创 2019-03-05 14:03:14 · 176 阅读 · 2 评论 -
int *p = NULL 和 *p = NULL 的区别
https://www.cnblogs.com/haore147/p/3647174.html转载 2019-02-20 22:20:58 · 267 阅读 · 3 评论 -
【C】通讯录(链表+文件存储)
/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name:Author:Jerey_Jobs Version:0.1 Date: Description:Funcion List: ****...原创 2019-03-26 14:23:19 · 847 阅读 · 5 评论 -
【C】通讯录(链表+数据库存储)
/*****************************************************copyright (C), 2014-2015, Lighting Studio. Co., Ltd. File name:Author:Jerey_Jobs Version:0.1 Date: Description:Funcion List: ****...原创 2019-03-26 14:38:09 · 464 阅读 · 2 评论 -
c语言作业【第十四次+第十五次】系统调用|库函数|printfscanf修饰符|全排列|TCPUDP区别|4层7层网络模型|暴力枚举|vector,reverse
例.系统调用和库函数的区别所有 C 函数库是相同的,而各个操作系统的系统调用是不同的。 函数库调用是调用函数库中的一个程序,而系统调用是调用系统内核的服务。 函数库调用是与用户程序相联系,而系统调用是操作系统的一个进入点 函数库调用是在用户地址空间执行,而系统调用是在内核地址空间执行 函数库调用的运行时间属于「用户」时间,而系统调用的运行时间属于「系统」时间 函数库调用属于过程调用,...原创 2019-07-23 14:56:02 · 248 阅读 · 0 评论 -
【C】八大排序
参考:十大排序目录一.交换排序1.冒泡排序双冒泡排序2.快速排序二.选择排序1.简单选择排序2.堆排序三.插入排序1.直接插入排序2.希尔排序一.交换排序1.冒泡排序时间复杂度:(/)空间复杂度:1稳定思想:比较相邻两个元素大小,左边大就交换 每次再从第一个开始比较,第一次比较完最大的在队尾 比...原创 2019-09-06 16:18:44 · 459 阅读 · 0 评论 -
assert断言的用法
简介#include <assert.h>void assert(int expression);/* 功能: 先计算表达式expression,如果其值为假(0),那么它先向stderr打印一条出错信息, 然后通过调用abort来终止程序运行 */频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包...原创 2019-08-07 21:50:53 · 393 阅读 · 0 评论 -
\t 跳过多少空格?
发现当要输出比较规范的表格时,\t 还是很好用的。但是今天在使用是发现下面的问题printf("学号\t期中成绩\t期末成绩\t平均成绩\n"); for(i = 0; i < 5; i++) { printf("%d\t%.2lf\t%.2lf\t%.2lf\n",stu[i].no, stu[i].mid, stu[i].final, stu[i]....原创 2019-02-13 15:25:45 · 1826 阅读 · 0 评论 -
C语言math.h常用函数
转载自:https://blog.csdn.net/flyapy/article/details/38494935有样例的:https://blog.csdn.net/AnthongDai/article/details/78696573 1 三角函数 double sin (double x); x的正弦值 double cos (double x); x的余弦值 dou...转载 2019-02-13 14:16:12 · 2555 阅读 · 0 评论 -
c语言作业【第三次】
一些坏习惯:输出时要记得打上换行符 \n,该换行的地方不要忘了换 一些结果要看好是不是负数,或者在除的时候结果要是小数记得令被除数或者除数变成小数形式。放结果的定义时不要用int型用float或其他型 最后一个printf输完要记得加上分号“;” scanf给哪个数值传值一定要写地址!!写地址!!!!!靠为了这个检查了能有一个半小时的错误。。。。。。 例.快速找出一个数组中的...原创 2019-01-24 19:51:06 · 142 阅读 · 0 评论 -
c语言作业【第三次 指针】
例.倒序输出英文字符串,但是英文单词的顺序还是正的。比如输入“I come from Shanghai”,应输出“Shanghai from come I”。整体思路是,用一个指针数组存放每个单词首字母地址,在用一个数组存放每个单词的长度。最后倒序输出单词即可。本质是读取源字符串的地址输出。有的同学也把单词放到一个二维数组中。老师提供的思路是写一个函数,其参数是出入首字符的地址,和要倒序的...原创 2019-01-25 22:18:24 · 248 阅读 · 0 评论 -
c语言作业【第五次】
例.仿写atoi()函数,使函数的功能为:读取字符串并从中提取数值(即最后是float型的数字而不是字符串),要求能识别小数,负数,.234这样的能转换为小数。函数命名为atoff()。0127 atoff 一开始我没有考虑负数和.34转化为小数的情况,这些功能是之后加在while循环部分前面的。老师做的就相对一体化一点但我觉得逻辑漏洞可能对更多一点?老师的做法:...原创 2019-01-28 09:57:39 · 793 阅读 · 0 评论 -
getchar()和putchar() getch() getche()
getchar()getchar() 用于读取用户从键盘输入的单个字符,它有一个整型的返回值,当发生读取错误的时候,返回整型值-1,当读取正确的时候,它会返回用户从键盘输的第一个字符的ASCII码.当程序调用getchar时.运行程序时就等着用户从按键输入,用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从输入流中每次读...转载 2019-01-23 00:24:39 · 368 阅读 · 0 评论 -
printf()中 %x 的符号拓展 + %补0不补零的问题
输出结果: 为什么有的输出有f,有的没有?给a赋值0x80907030输出结果: p指针是字符型,指向一个字节,a是长整型,占4个字节,因此for循环,依次取长整型变量的各个字节,而且可以看得出,这是小端字节序,所以输出的时候从低位字节开始输出。输出格式是%#0x,输出格式是十六进制整数,需要输出前导符(即0x),所以输出格式是32位的整数格式。因为没有指定输出数据...原创 2019-01-28 21:10:24 · 9697 阅读 · 0 评论 -
位运算 + c语言作业【第四次】
位运算整数在计算机中用二进制的位来表示,C语言提供一些运算符可以直接操作整数中的位,称为位运算,这些运算符的操作数都必须是整型的。参与运算的两数各对应的二进位相运算,均以补码出现。 & 按位与, | 按位或 , ^ 按位异或AND (位与&) OR ( 位或| ) XOR ( 位异或^ )1 & 1 = 1, 1 | 1 = 1, 1 ^ 1 = 01 ...原创 2019-01-28 21:47:43 · 834 阅读 · 0 评论 -
生成随机数 + c语言作业【第六次】
0129一些注意点: double pow (double x, double y): x^y。注意返回为double类型,计算2的8次方,输出要强制类型转换,如果不注意用%d输出,只会输出0 例.对一个二维数组中的数据排序,方法如下: 将整个数组中值最小的元素所在行调整为数组第一行, 将除第一行外的行中最小元素所在行调整为第2行, 将除第1,2行外的行中最...原创 2019-01-29 22:19:03 · 733 阅读 · 0 评论 -
c语言作业【第九次】
要点:注意看清楚ASCII中的大小写字母所在位置,并不是小写字母在大写字母前面!大小写字母也并不是连在一起的!原创 2019-02-15 19:17:31 · 291 阅读 · 0 评论 -
【链表】带头结点的单链表
还需改进:creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表!同时create_link这个函数中也要判断head是否申请成功,不成功的话同样提示并退出函数。#include <stdio.h>...原创 2019-02-16 12:38:51 · 323 阅读 · 0 评论 -
free()函数
今天写环形链表时,写到释放链表的时候想判断一下这个链表是否真的被释放了,于是在主函数中写不但head的值不为NULL,而且diplay这个函数还能调用并且运行成功(也就是会输出Link is empty) 上网查了一下发现,free()函数的意思:(free函数没有返回值!它以为自己每次执行的时候都是成功的)free的功能:释放ptr指向的存储空间。被释放的空间通常被送入...转载 2019-02-16 15:27:57 · 2459 阅读 · 1 评论 -
【链表】无头结点的单链表 前插,后插,删除,显示等
还需改进:creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表!#include <stdio.h>#include <stdlib.h>#include <time.h>...原创 2019-02-14 21:51:25 · 447 阅读 · 1 评论 -
【链表】带头结点的循环链表
还需改进:creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表!同时create_link这个函数中也要判断head是否申请成功,不成功的话同样提示并退出函数。//没写查找函数#include <s...原创 2019-02-16 19:04:49 · 553 阅读 · 0 评论 -
【链表】带头结点的双向循环链表
还需改进:creat_node这个函数应有返回类型,来判断新建结点是否成功,不然主函数中不管成不成功都会访问该节点成员。改了这个函数,在主函数中create_node后要判断是否成功,不成功就提示并退出函数,退出前别忘了还要释放链表!同时create_link这个函数中也要判断head是否申请成功,不成功的话同样提示并退出函数。#include <stdio.h>...原创 2019-02-16 19:29:25 · 390 阅读 · 0 评论 -
【栈】用数组
#include <stdio.h>#include <stdlib.h>#define MAX 10enum return_val {FULL_OK, FULL_NO, EMPTY_OK, EMPTY_NO, PUSH_OK, PUSH_NO, POP_OK, POP_NO, GET_OK, GET_NO};struct stack_data{ ...原创 2019-02-18 16:09:46 · 184 阅读 · 0 评论 -
与 (某函数名)类型冲突,警告:(某函数名)的上一个隐式声明在此
明明函数的形参和实参类型没有错误,都是对应的,但就是一直提示次错误。因为函数调用在函数定义之前。原创 2019-02-18 16:12:29 · 2496 阅读 · 1 评论 -
strlen()与sizeof()区别
例.#include <stdio.h>#include <string.h>int main(){ char a[1000]; int i; for(i=0;i<1000;i++) { a[i]=-1-i; } printf("%d\n",strlen(a)); retur...转载 2018-12-05 00:06:15 · 190 阅读 · 0 评论