自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

周周的博客

一起交流学习呀

  • 博客(693)
  • 收藏
  • 关注

原创 文件操作 文件指针 fputc fgetc fputs fgets fprintf fscanf sscanf sprintf fwrite fread 通讯录文件版EOF ftell rewind

文本文件:打开人能看懂的就是文本文件二进制文件:打开人看不懂的就是二进制文件可打开二进制文件。

2024-04-22 22:21:59 293

原创 动态内存管理 柔性数组

我们有一种方式就是把内存的数据放到高速缓存里,高速缓存放到寄存器里 ,当cpu每次处理数据的时候去寄存器里拿,效率就会快,寄存器找不到就去cache里找,cache里找不到就去内存里找,size要开辟的字节数,申请好空间后是把这段空间的起始地址给你,返回第一个字节的地址。p不在指向动态开辟出来的内存的起始位置会出问题,p不走到最后,走到一半也不行。这两种写法是一个意思,大小是位置的称为柔性数组成员,即数组的大小是可以调整的。内核空间:留给内核使用的一段空间,内核态,4G的内存留2G给操作系统用。

2024-04-17 22:30:58 505

原创 结构体内存对齐 offsetof 枚举 联合体

对于数组算对齐数的时候,算的是元素的对齐数【第二条中的其它成员变量如果是数组,那么该成员变量的大小是看数组的类型,而不是数组类型*数组元素的个数】第2条中, gcc编译器没有默认的对齐数,那对齐数就是该成员的大小。第4条最大对齐数(即所有对齐数中最大的那个),嵌套结构体的对齐数。嵌套结构体对齐到自己最大对齐数的整数倍处。第一条是指比如整型只能在4的倍数处取,这只是假设方便理解。嵌套结构体占几个字节,按照结构体结构体对齐规则算就好喽。因为共用同一块空间用c的时候就不能用i,是嵌套的结构体最大的对齐数。

2024-03-23 22:37:33 409

原创 字符和字符串的库函数strcpy,strcat,strcmp,strncmp,strncat,strncmp,strtok,strstr,memcpy,memcmp.memset

在C语言中,size_t 是无符号整数类型,通常用于表示内存中对象的大小或索引。在不同系统中,size_t 的大小可能会有所不同,但它通常被设计为能够表示系统中最大可能的对象大小。dest所指向的位置,然后递增src和dest的指针位置,指向字符串的下一个字符。size_t是自己定义的一种类型,是已知类型的别名,具体要看头文件中是怎么定义的。字符’\0’: ASCII 码为0,表示一个字符串结束的标志。自己写的返回值为int,不严谨,要写成size_t。dest在src之后,从后往前,从前往后都没有关系。

2023-12-10 22:31:24 1050

原创 C语言指针进阶

把常量字符串赋给p,其实是把首字符的地址赋给了p,不是把字符串的地址赋给p,而是把首字符的地址赋给p,不是把字符串放到了p里面。&p得到char**二级指针,二级指针,指向地址,指向4/8个字节,这个系统的指针占4个字节,所以&p+1就向后移四个字节。找到str1的\0,然后把str2字符一个一个放过去,直到遇到\0停止,\0也放过去。pa是一个指针,指向一个数组,这个数组有5个元素,数组每个元素是char*函数指针,是指针,存放函数地址的指针。数组指针是指针,存放数组的地址,指向数组的指针。

2023-11-14 01:23:24 349

原创 vscode调试技巧 断言 assert

鼠标点击设置或取消断点设置好断点,点击开始调试(F5),代码就会在断点处停下来,断点前面的代码已经执行完了然后逐过程或逐语句调试上图中如果使用开始调试(F5),会一直走到这个断点上,F5走到下一个断点是逻辑上的(这是一个for循环),而不是物理上的。

2023-10-21 00:34:13 443

原创 sort用法

【代码】sort用法。

2023-10-09 01:58:29 121

原创 杂记 define,typedef,static,extern,memset,ifndef,递归,逻辑与&&,整型提升,算术转换,栈区,高地址

避免头文件被引好多次 ,比如都引了#include,这个头文件有1000行,都引,那不就是好几千行,重复了当别人在包含add.h时都会先判断if没有定义它,第一次引add.h头文件时已经定义了,所以别人第二次在引用add.h,#endif前面的代码都不会执行。防止同一个头文件被重复引用多次。_ADD_H_一般都是根据头文件的名字写的。

2023-10-06 14:45:28 173

原创 字符串,字符数组,类型转换,sizeof,size_t,整数越界,浮点数,枚举,局部变量不要返回地址,

下一次的scanf从多出来的字符开始读,比如输入12345678则8就是下一个scanf就把8读进去。8个字节的数组,学数组的时候我们知道,传进去的是一个指针,不知道读入的内容的长度。printf double可以写%f是因为有自动类型转换。整数argc告诉后面argv字符数组到底有多少个字符串。const表示这个函数不修改字符串。

2023-10-03 01:17:29 369

原创 枚举,进制转换,char*,补码,算法,链表,位运算,NULL的含义,void*

如果想知道某一位是几,比如想知道第一位和第三位是几,可以与0101与,那么如果1和3位结果是1 就说1和3位原来是1,如果1和3位结果是0 就说1和3位原来是0。编码就是解决这个东西到底用哪个二进制表示。不够位数指的是比如32位,前面都补1。4个二进制位组合才能有16个状态。

2023-10-01 12:44:06 205

原创 linux权限机制,

使用umask显示权限时,我们发现是4个数字,我们之前用数字表示权限时ugo各对应一个数字,为什么这里系统显示四个数字,第一个是保存特殊权限。所属组的x位变成了s,为这个目录设置了sgid后,这个目录所有新建的文件,文件夹都与这个目录的所属组相同。新建一个文件夹,修改所属组,进到这个目录下,新建一个文件,返现这个文件的所属组没有变。第一个6代表所属用户的权限,第二个6代表所属组的权限,第三个0代表其它的权限。也有了默认权限,所属用户是读写权限,所属组是读写权限,其它是读权限。不同部门之间不能相互访问。

2023-09-28 18:19:36 124

原创 优先队列(priority_queue)用法详解

/方法1struct tmp1 //运算符重载

2023-09-24 22:45:11 344

原创 STL常用遍历,查找,算法

/常用查找算法//findpublic://重载== 让底层find知道如何对比person数据类型bool operator ==(const Person& p)//const防止修改pelseint m_Age;//查找 自定义数据类型//创建数据//放到容器中//查找是否有和p一样的cout

2023-09-24 16:48:10 126

原创 C-结构体

定义一个新的数据类型,这个数据类型是struct Student,用这个数据类型定义了一个变量2 3不推荐。

2023-09-14 10:40:00 101

原创 指针,动态内存分配

指针就是地址,地址就是内存单元的编号指针变量,存放其他变量地址的变量 ,存放地址的变量第2句话,修改i的值也不影响p的值,可以看下面的例子,p放的是地址,p的地址修改了,不影响i,不是修改*p 执行swap_1时,第一步先为它里面的局部变量分配存储空间,第二步把实参的值发送给形参,这意味着i和a是不同的变量,当swap_1执行完毕后,swap_1中所有变量的空间全部被释放了 ​​​p,q,r都存放第一个字节的地址。那为什么存放第一个字节的地址,我们说r存放x的地址,r就指向x,但r又保存了第一个字节的地址

2023-09-13 23:46:47 314

原创 Linux帮助文档

helpman (manual手册)info

2023-09-12 16:25:23 65

原创 Linux 磁盘管理,分区,文件系统

t+文件系统类型+目标分区(-t后面创建什么样的文件系统,接着后面跟要创建的硬盘或分区)想使用逻辑分区必须有扩展分区,扩展分区是不能用的,必须在扩展分区的基础上建立逻辑分区。ext3,ext4默认待系统日志,用不到-j, ext2不带。lsof(list open file列出打开文件)ro(read only),挂载到根目录下的mnt。文件系统块大小是每次文件系统读写操作的最小单位。卷标就是给磁盘取个名字,比如f盘叫娱乐盘。对磁盘进行分区,分为c盘d盘等。使用label进行识别。

2023-09-12 16:09:33 286

原创 函数,变量作用域,extern

​​​​​。

2023-09-12 00:01:49 134

原创 C语言数组

目录一维数组 多维数组是否存在

2023-09-10 23:52:10 124

原创 运算符,switch,强制类型转换,三目运算符,逗号表达式

除法的运算结果和运算对象的数据类型有关,两个都是int商就是int,被除数或者除数只要有一个是浮点型数据,商也是浮点型数据。

2023-09-10 23:25:35 293

原创 Linux编辑器 VI VIM

查找关键字后,按n键在找到的结果之前来换的切换、

2023-09-09 19:40:28 721

原创 Linux常用命令

有时候文件太长,可以用more翻页,空格键翻页,less翻页(空格,上下键,pageup pagedown,按q退出)

2023-09-09 18:41:15 386

原创 Linux文件操作

cp(copy)同一个目录下复制,所以重命名了一下;把它复制到linuxcast.net/目录下可以不用重命名复制文件夹或者目录加-r-v显示复制详细信息。

2023-09-09 15:58:15 184

原创 printf scanf

为什么要输出控制符,因为里面放的是二进制,必须控制输出的格式,指定这一串二进制以什么样的格式输出。把十的二进制代码放进去了,i对的是二进制代码,指定这一串0101代码以什么样的格式输出。凡是百分号开头的都是输出控制符,非输出控制符,比如刚刚的\n,空格等。输出控制符把它输出的参数以他规定的格式输出了,非输出控制符原样输出。输入必须是合法的,比如输入A,A不能转化成十进制。输入之间以逗号分隔 ,非输入控制符必须原样输入。输入之间以空格分隔 ,非输入控制符必须原样输入。想把值赋给谁,就取谁的地址。

2023-09-08 14:24:52 135

原创 C编程预备计算机专业知识

把基本类型拼在一起就变成了复合类型变量的本质就是内存中一段存储空间变量作用:给一段指定的内存空间起名,方便操作这段 内存。数据都是放在内存里的十进制就是逢十进一,二进制就是逢二进一二进制,逢二进一,如果加起来是2,则写0进1逢八进一,相加等于八,写0进一逢十六进一,相加等于十六,写0进一八进制的17对应十进制的15 ,为什么17对应十进制的15?17中的7没有进位,就是十进制的7,这个1是因为有8才能进一,这个1代表8,7+8=158进制23对应十进制几?

2023-09-08 09:50:01 195

原创 Linux文件系统结构

所有的文件,文件夹,所有的结构都是存在一个叫根目录的目录下。

2023-09-06 21:34:03 147

原创 Linux命令行

代表当前以普通用户身份登录,#代表以根用户即root身份登录。@符号后面的部分是当前的主机名,也可以使用hostname查看主机名,在下一个符号,比如截图里的-,表示当前的目录。

2023-09-06 20:15:23 126

原创 使用maven idea环境

创建模块工程后。

2023-09-05 16:06:18 831

原创 maven依赖,继承

在使用时就可以写成。

2023-09-05 14:46:17 172

原创 567. 字符串的排列

windows放窗口里需要统计的元素。

2023-09-05 01:12:00 223

原创 76. 最小覆盖子串

滑动窗口

2023-09-05 00:26:13 80

原创 maven基础学习

maven学习

2023-09-04 16:45:17 1803

原创 BM7 链表中环的入口结点

fast总共走2k步,如果让fast从头开始一步一步的走,那么走到相遇的结点走了k步,那么剩下的k步是在环上走的,这k步可能绕着环走了好几圈,那么再走k-m步就走到了环的入口结点。

2023-09-04 01:04:01 36

原创 BM6 判断链表中是否有环

第二个思路双指针,快慢指针,如果有环,则快指针会与慢指针相遇,就像田径场跑步,跑的快的会把跑的慢的套圈,所以两个指针肯定会相遇。

2023-09-03 23:28:30 42

原创 合并 k 个升序的链表

分治的思想,归并排序的思想。那么这道题就可以用小顶堆。

2023-08-31 23:32:40 98

原创 BM3 链表中的节点每k个一组翻转

这个就是用栈,k个一组判断就好了。

2023-08-27 02:20:44 165

原创 BM2 链表内指定区间反转,为什么链表要new一个结点?

就是错误代码,我想的是自己创的局部变量T,这个对象每次都是新的,结果在VS2022上调试,一步步发现,原来每次新建的T居然是一个地址!因为链表里已经加入了之前的T的这个地址,这直接导致链表发生错误,以第一个用例为例,本意是想实现1-4-3-2,结果最后只有1-2。因为在循环时,首先是1-4,在创建3这个节点时,由于是4的地址,所以就把4覆盖了,输出1-3,而不是1-4-3.一个是new一个结点,另一个是建一个结点然后取地址,错误的代码在于,思路就是,把需要反转的结点放入栈中,然后在弹出来。

2023-08-24 00:33:08 114

原创 反转链表牛客

给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围: 要求:空间复杂度 ,时间复杂度。如当输入链表{1,2,3}

2023-06-01 01:30:15 48

原创 返回类对象时,什么时候调用拷贝构造函数,什么时候会进行返回值优化(RVO)

在C++中,返回值优化(Return Value Optimization,RVO)是一种编译器优化技术,用于避免不必要的对象拷贝。需要注意的是,对于编译器优化的行为并没有明确的规定,不同的编译器和编译器设置可能会有不同的结果。在某些情况下,编译器可能会对这些情况进行优化,避免不必要的拷贝构造函数的调用,这取决于编译器的实现和优化策略。需要注意的是,返回值优化是编译器的一种优化技术,不是C++标准的要求。不同的编译器可能有不同的优化策略,因此在其他编译器或编译器设置下,可能会触发拷贝构造函数的调用。

2023-05-31 19:36:56 693

原创 STL 函数对象,即仿函数

仿函数写法灵活,没有一个固定的写法。

2023-05-29 21:44:56 116

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除