自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 c语言中char数组的结束位

因为是半路出家学习cpp的,所以经常会对c语言里面的字符数组感到困惑,这次一次性做个总结。

2023-03-30 10:43:22 1563

原创 关于&&运算符的机制以及=和>的运算优先级

今天碰到问题的代码是这样的,最开始以为会输出3(以为=和>的优先级一样),后来查询发现比较运算符的优先级大于赋值运算符,于是觉得输出应该是0。结果输出2,经查询发现是&&在判断前一个条件为0后就不会再去判断第二个条件了。以前没见过这个说法,特此记录一下。

2022-12-27 14:23:24 273

原创 golang将值传递给struct时“复合文字中缺少类型”/”缺少表达式“

golang

2022-12-07 10:55:46 286

原创 二级指针创建二维数组

本质思想就是先申请一个大小为m的空间用于存放数组指针。然后为每个数组指针申请n的空间。注意数组的构造方法是[ ]。

2022-10-17 20:55:21 295

原创 sunday算法和kmp算法

最近看到一个字符串匹配算法sunday,类似于kmp算法,特此记录一下。

2022-09-17 12:17:48 353

原创 C++非const引用问题:error: cannot bind non-const lvalue reference of type

出现这个问题是因为把一个临时变量传入了函数的引用形参中,简化代码如下:应该改为:原因是,非常量引用不能指向临时变量,只有常量引用才能指向临时变量。当一个函数的形参为非const类型,而一个参数以非const传入,编译器一般会认为程序员会在该函数里修改该参数,而且该参数返回后还会发挥作用。此时如果你把一个临时变量当成非const引用传进来,由于临时变量的特殊性,程序员无法对改临时变量进行操作,同时临时变量可能随时会消失,修改临时变量也毫无意义,因此,临时变量不能作为非const引用。例如++++i与i++

2022-06-09 20:21:30 1320

原创 类和内联函数

1.在类内声明和定义,没用inline关键字是隐式内联2.在类内声明,类外定义的,如果声明或者定义有一个使用了inline关键字,则是显式内联3.在类内声明,类外定义的,如果没有使用inline关键字,则不是内联函数...

2022-05-12 10:24:35 253

原创 while(cin>>str)的循环结束问题

这个问题源于《c++Primer第五版》p15的一个程序,我写了一个简化代码,如下输入类型为整形或者浮点型 int val; while (cin >> val) { cout << "1" << endl; } cout << "over" << endl;如果重复输入int类型的值的话,即使按了enter也会重复循环,只有在输入非int的值的时候,这个循环才会跳出输出over,或者按ctl+z,然后按enter。输入类型为字

2022-05-01 14:27:16 1306

转载 using namespace std的含义

所谓namespace,是指标识符的各种可见范围。C++标准程序库中的所有标识符都被定义于一个名为std的namespace中。一 :和<iostream.h>是不一样,前者没有后缀,实际上,在你的编译器include文件夹里面可以看到,二者是两个文件,打开文件就会发现,里面的代码是不一样的。后缀为.h的头文件c++标准已经明确提出不支持了,早些的实现将标准库功能定义在全局空间里,声明在带.h后缀的头文件里,c++标准为了和C区别开,也为了正确使用命名空间,规定头文件不使用后缀.h。因此

2022-04-24 20:07:31 476

原创 c++中的内联函数

语法:在普通函数声明之前加一个 inlineeg:void max(){;} ----普通函数inline void max(){;} ----内联函数内联函数对比普通函数的区别以及优缺点:区别:如图两个程序。普通函数在主函数执行到max(1,2)的时候,会跳转去寻找max函数的入口,然后带入参数执行函数,执行完毕后,再回到主函数接下来的代码。内联函数在主函数执行到max(1,2)的时候,会使用max函数的代码来直接替换掉main函数的max(1,2)代码。内联函数的优点:省去了进出函数

2022-04-24 17:44:04 2709

原创 mysql的启动与连接

linux下的mysql初始操作systemctl start mysql ---- 启动mysql服务mysql -uroot(-u用户名) -p123456(-p密码) —连接mysql服务linux的初始密码在/root/.mysql_secret中,初始用户为root修改密码的命令mysql> set password=password(‘123456’);windows下的mysql初始操作win+R,输入services.msc进入到系统服务中,找到mys

2022-04-17 14:20:38 940

原创 Docker中进入容器exec和attach的区别

exec和attach 都是进入当前运行容器的命令exec(为较为常用的):使用exec进入容器后,是开启一个新的终端,在里面操作attach:使用attach是直接在当前容器正在执行的终端里进行操作例子:我们分别使用2种不同命令进入容器,然后退出容器,再观察容器的状态先使用exec进入容器进入正在运行的centos容器docker exec -it 6ebaa1bd0f6e /bin/bash然后退出容器再查看容器的状态,这个时候容器还是运行着的再来使用attac.

2022-04-16 17:19:58 3038

原创 利用docker在centos上安装Oracle

如果还没安装docker,可以去docker官网按照教程安装对应操作系统的版本:https://docs.docker.com/engine/install/1、拉取 docker 镜像:[root@localhost ~]# docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g该镜像由阿里云提供,比较大,可能需要下载一会等待下载即可……2、用 docker images 命令查看镜像[root@localhost ~

2022-04-04 19:03:38 406

原创 LINUX 里面关于“error while loading shared libraries”一类错误解决办法

今天在安装libevent的时候遇到了error while loading shared libraries:libevent…的错误,简单查看了一下网上的解决办法,发现原因所在。默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定–prefix,会将库安装在/usr/local/lib目录下(我在安装的时候直接是configure,但是其实应该是./configure -prefix=/usr,如果这么写应该就不会报错了);当运行程序需要链接动

2022-03-30 20:24:02 969

原创 TIME_WAIT状态、危害、如何避免危害

1.什么是TIME_WAIT状态?即是在四次挥手的过程中,主动断开方在发出正常情况最后一个ACK时所等待的时间,一般为2MSL(MSL指的是数据包在网络中的最大生存时间).2.为什么需要TIME_WAIT状态?为了保证四次挥手的可靠性。主动断开连接方(上图中Client)最后一次ACK报文丢失了,会触发被动方(上图中Server)的超时重传机制,Server再次向Client发送FIN+ACK报文,如果Client在发送完最后一次ACK后立即断开连接(没有TIME_WAIT状态),则Serve

2022-03-10 14:30:52 540

原创 c++中的异或运算

简要介绍:不同则为1,相同则为0 。注:如果要理解一下内容,要先理解 1 ^ 2 = 3 即 0001 ^ 0010 = 0011;应用于数值交换,例如:int temp = i;i = j;j = temp;可以写成异或运算:i = i ^ j;j = j ^ i;i = i ^ j;具体解释:第一步时 i = i ^ j; 因为计算机内部都是二进制的,所以这一步其实是,让 i 的 二进制表示中 与 j 的二进制表示中 位不同的变成1,位相同的变成0。第二步 j = j ^

2022-03-08 17:18:41 16369

原创 迭代器与指针的区别

迭代器与指针的差别:迭代器:(1)迭代器不是指针,是类模板,表现的像指针。他只是模拟了指针的一些功能,通过重载了指针的一些操作符,->, * ,++, --等封装了指针,是一个“可遍历STL( Standard Template Library)容器内全部或部分元素”的对象, 本质是封装了原生指针,是指针概念的一种提升(lift),提供了比指针更高级的行为,相当于一种智能指针,他可以根据不同类型的数据结构来实现不同的++,–等操作;(2)迭代器返回的是对象引用而不是对象的值,所以cout只能输出

2022-03-07 16:44:36 1707

原创 malloc和new的一些区别

https://www.cnblogs.com/QG-whz/p/5140930.html顺便简要说明一下,自由存储区和堆的区别。自由存储区和堆的区别是一个老生常谈的问题了,就像面试题new和malloc的区别一样。事实上,网上多说人认为,自由存储区与堆的划分标准是申请和释放内存是使用的new/delete还是malloc/free。C++标准并没有给出new/delete应该如何实现,但很多编译器的new/delete都是以malloc/free为基础来实现的。从技术上来说,堆(heap)是C语言和操

2022-03-03 19:01:45 526

原创 三次挥手建立连接和四次挥手断开连接

具体分析为什么,断开连接要比建立链接多一次握手,以及简单的运作过程。https://blog.csdn.net/weixin_35725654/article/details/113057192

2022-02-28 10:50:13 48

原创 c++中随机数的使用

c++创建随机数有rand()和srand()函数。(1)rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。可以使用用以下公式定义一定范围内的随机数。注意:因为没有随机种子所以,rand()下一次运行也是这个数,因此就要引出srand创建随机数种子。产生一定范围随机数的通用表示公式是:通用公式:a + rand() % n;其中的a是起始值,n是整数的范围,即[a,a+n)要取得[0,n) 就是rand()%n

2022-02-24 17:05:53 3961

原创 linux中主线程退出后子线程的状态

1.运行如下代码:即是简单创建一个子线程,主线程直接结束,然后在子线程中每间隔一秒就打印一个HELLO。利用ps -ef查看进程状态,发现没有主线程和子线程都不在,即是主线程退出后子线程也会退出。2.运行如下代码,增加利用pthread_exit函数,使主线程退出。利用ps -ef查看进程状态,发现存在进程,利用(ps -Lf 进程号)查看线程状态,发现子线程和主线程都是僵尸线程。...

2022-02-23 10:09:19 1287

原创 线程ID打印出来为负的问题

今天打印线程ID的时候发现打印出来的数值是负数,于是查了一下资料发现是因为进程id的值太大导致的,因为int是有符号整型,其符号位为0的时候默认为数值为整数,所以当这个数值大到占用了符号位的时候,这个值打印出来就会变成负值。解决办法:将打印的%d换成了%ld就正常了。借此机会顺便复习了一下printf函数中所有的占位符。%d 按十进制整型数据的实际长度输出。%ld 输出长整型数据。%md m 为指定的输出字段的宽度。如果数据的位数小于 m,则左端补以空格,若大于 m,则按实际位数输出。%u 输出

2022-02-21 20:31:39 503

原创 获取当前系统的时间

1.time函数函数原型:time_t time(time_t *t)函数功能:获取当前系统的时间函数的返回值和参数都是time_t类型的变量,且都可以获取当前系统的时间,使用前先定义一个time_t类型的变量。例:time_t t;time(&t);或者time_t t;t = time();2.ctime函数函数原型:char *ctime(const time_t *timep);函数功能:将time_t 类型变量转换为char *类型例如:time_t t;

2022-02-21 16:51:51 3218

原创 内存操作函数,mem* 系列以及 *alloc系列

1.memcpy函数函数原型:void* memcpy(void* dest,const void* src,size_t num)功能:将src指针指向的的前num个字符拷贝到dest中,返回值是指向目标储存区dest的指针,一般不带返回值。例:char a[200];memcpy(memcpy(a, "123", 3), "bla",3);2.memmove函数函数原型:void* memmove(void* dest,const void* src,size_t num)功能:同me

2022-02-12 17:11:36 1184

原创 SecureCRT软件安装

首先从官网下载SecureCRT官网地址:https://www.vandyke.com/cgi-bin/releases.php?product=securecrt,也可以从百度网盘下载。下载完毕后正常安装SecureCRT(注意选择安装路径不要有中文)。下一步之前先关闭杀毒软件(必须!),然后解压Patch.And.Keymaker.rar文件,以管理员身份运行keygen,然后选择路径,选择自己安装的SecureCRT路径下的SecureCRT文件。选择完毕后打开安装好的好的打开SecureCR

2022-02-11 17:59:34 3961

原创 FIFO文件和普通文件

今天学到FIFO文件的时候,发现FIFO文件的通信方式和普通文件是一样的,就产生疑问,为什么要有FIFO文件。经过查询后,发现FIFO文件是对内存进行操作,而普通文件是存储在硬盘上,对内存的的读取会比硬盘的读写要快很多。...

2022-02-10 20:38:49 1133

原创 fork之前没有fflsh,printf缓存区以及子进程的关系

今天在写循环创建和回收子进程的时候,突然发现printf中加上换行符\n和不加换行符的区别很大。输出如下:把第十四行的换行符去掉以后,输出如下:不仅仅是输出变成了六个,输出时间也由原来每两秒一个变得杂乱无章。经研究发现,是因为printf缓存的缘故。printf只有在遇到\n或者进程结束才会输出。所以第一次循环没有输出,第二次循环时子进程复制了父进程的缓存,并在退出时打印出来一个,第三次循环父进程fork子进程时,父进程缓存池已经有了两个打印的数据,子进程复制了并在退出时打印,第三次循环结束时

2022-02-09 15:49:22 215

原创 centos设置vim中tab长度以及缩进格式和代码颜色

set nocompatibleset numberfiletype onset history=1000set background=darksyntax onset autoindentset smartindentset tabstop=4set shiftwidth=4set showmatchset guioptions-=Tset vb t_vb=set rulerset nohlsset incsearchif has(“vms”)set nobackupe

2022-02-09 10:03:36 1166

空空如也

空空如也

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

TA关注的人

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