自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 指针与引用

指针与引用的区别:1、初始化要求不同,引用在创建的同时必须初始化,即需要引用到一个有效的对象,而指针在定义时不必马上初始化,可以在后面任何地方马上赋值。2、引用绑定到一个有效的对象后不可修改,指针不同,可以随时指向任意对象。3、不存在NULL的引用,它总是指向某个对象,指针可以指向NULL,所以指针更加灵活,也更容易出错。4、使用测试的区别,引用不会指向NULL,所以使用前不需要测...

2018-07-17 09:33:28 211

原创 linux C的关键字static

    static修饰变量,该变量空间独立于函数中的auto变量或栈变量,它在内存的静态区分配;一般来说局部变量存放在栈区;其生命周期随语句块执行结束而结束;用static修饰,该变量就放在内存静态数据区;其生命周期持续到整个程序结束为止;虽然其变量的生命周期与存储位置变化,但作用域没有改变;用static修饰局部变量,该变量初始化只在程序初次运行时执行一次,且只执行一次。若静态局部变量没有初始...

2018-03-23 09:59:31 2355

原创 有n个人围成一圈,顺序排号,从第一个开始报数(从1-3报数),凡报道3的人退出,问最后留下来的人是原来的几号;

笨办法,用链表写#include #include //不带头结点的单链表,typedef struct node{int data;struct node *next;}node;typedef node* Linklist;Linklist H;//定义头指针;void initlink() //初始化函数{H = N

2018-01-24 20:17:46 566

原创 nginx 代理 spring boot admin server端

场景:通过请求 ip:8080/admin 来请求到 spring boot admin server服务的 ip:8081/admin。原因:通过nginx代理,减少端口的使用。

2022-08-09 15:31:37 2935 1

原创 springboot 单体服务运行bat脚本

spring boot 服务一般是打包成jar运行在windows 服务器上面一般是 cmd窗口输入命令启动服务,或者注册成windows 服务开机启动,今天写了一个简单的bat脚本,输入参数重新运行指定jar包。

2022-08-05 10:28:25 1004 1

原创 java的equals()

刚开始学习java,java的Object类包含了一个equal函数,在用来比较字符串上面很方便,开始看到“xxx”.equals(string)这种写法比较疑惑,为什么要把常量放在前面比较变量。这种写法有它的好处,一句话,这样写避免了空指针异常。变量是有可能为null的,所以当比较变量为null时,这种写法仍然正确,还有一种写法看起来更好object.equals("",str);...

2019-08-20 17:47:09 319

转载 常见的网络协议

网络层---数据包的包格式里面有个很重要的字段叫做协议号。比如在传输层如果是TCP连接,那么在网络层IP包里面的协议号就将会有个值是6,如果是UDP的话那个值就是17---传输层。 传输层---通过接口关联(端口的字段叫做端口)---应用层。 用netstat –an 可以查看本机开放的端口号。 代理服务器常用以下端口: (1). HTTP协议代理服务器常用端口号:80/8080/3128...

2018-09-11 16:59:11 1276

原创 数据结构:树、二叉树

一:树的定义:树(tree)是n个节点的有限集;n = 0;称为空树;在任意非空树中:1、有且仅有一个特定的根节点;2、当n>1时其余结点可分为m(m>0)个互不相交的有限集,其中每个集合本身又是一棵树,并且称为根的子树。  树的定义强调两点:1、n>0时,根节点唯一2、m>0时,子树的个数没有限制,但他们一定互不相交下图就不符合...

2018-09-09 08:55:36 355

转载 UDP主要丢包原因及具体问题分析

UDP主要丢包原因及具体问题分析 一、主要丢包原因 1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。 2、发送的包巨大丢包:虽然send方法会帮你做大包切割成小包发送的事情,但包太大也不...

2018-09-07 15:14:36 733

转载 ubuntu安装jsoncpp

做项目的时候需要用c++解析json文件, 之前使用的是 libjson 库, 但当g++ 开启 -std=c++11 选项时, 该库的很多功能不能用, 而且还有一些其他的问题, 不推荐使用. 后来采用的是 jsoncpp 库, 可以在ubuntu下用下面的命令安装该库: 1 sudo apt-get install libjsoncpp-dev libjsoncp...

2018-08-04 10:37:21 1967 1

原创 双向链表

#include <iostream>#include <stdio.h>using namespace std;typedef struct node{ int date; struct node *next; struct node *prev;}Node;class DLLNode{private: Node *head;public:...

2018-07-24 14:38:29 127

原创 快速排序

基本思想:通过一趟排序将待排记录分隔成两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 1、从数列中挑出一个元素,称为 "基准"(pivot) 2、重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition...

2018-07-22 15:42:52 100

原创 希尔排序

#include <iostream>using namespace std;void print(int *p , int len){ for (int i = 0; i < len; ++i) { cout << p[i] << ' '; } cout << endl;}void swap(int &a ...

2018-07-21 08:54:58 2249

原创 插入排序

#include <iostream>using namespace std;void print(int *p , int len){ for (int i = 0; i < len; ++i) { cout << p[i] << ' '; } cout << endl;}void swap(int &a ...

2018-07-21 08:54:17 252

原创 选择排序

#include <iostream>using namespace std;void print(int *p , int len){ for (int i = 0; i < len; ++i) { cout << p[i] << ' '; } cout << endl;}void swap(int &a ...

2018-07-21 08:53:36 99

原创 冒泡排序的简单实现

void sort(int *p , int len){ int j; for (int i = 0; i < len-1; ++i) { for (j = 0; j < len-1-i; ++j) { if (p[j] > p[j+1]) { swap(p[j],p[j+1]); } } }}#include <i...

2018-07-20 21:09:39 138

原创 C++有了malloc/free为什么还要有new/delete

malloc与free是C/c++的标准库函数,new/delete是运算符;它们都可用于在堆上动态申请或释放内存对于malloc与free,它无法满足非内部数据类型对象的动态生成与消亡;即定义了一个类class,类的对象实例化与消除是通过构造函数与析构函数完成;malloc与free无法通过类 的指针来生成一个类空间,因为编译器无法将构造函数与析构函数的任务加于malloc与free; ...

2018-07-19 11:36:58 281

原创 野指针的产生与危害

                       野指针不是NULL (nullptr),而是指向未知内存的指针,野指针很危险,容易造成内存的非法访问;野指针的形成原因有两种:1、创建的指针变量没有初始化,任何指针变量的创建是不会自动成为NULL指针的;它是随机值;所以指针创建时要初始化(或变成NULL)让指针指向合法内存;2、指针p被free或delete后没有指向NULL,此时p仍认为...

2018-07-19 11:14:59 535

原创 类成员函数与this指针

类成员函数的编译对于类成员函数,不是一个对象对应一个单独的成员函数,而是同一类 的所有对象共享这个成员函数体。当程序编译后,成员函数的地址已经确定,,当调用此成员函数时,会将当前对象的this指针传入成员函数,类的成员函数体只有一份,但成员函数之所以可以把各个对象的数据分开是因为,每次执行成员函数时,都会把当前对象的this指针(首地址)传入,对类内成员数据的访问,实际上是通过this指针访问...

2018-07-19 11:07:35 3956

原创 随机数与随机分组

在C语言中通常用srand()与rand()函数来去随机数; 在c语言里面,两个函数包含在<stdlib.h>头文件里面,c++里面,标准库<cstdlib>(被包含于<iostream>中). srand函数是随机数发生器的初始化函数。        原型:void srand(unsigned seed);        rand函数用来产生...

2018-07-18 22:28:41 4097

原创 用递归编写strlen函数

不用库函数,以及任意变量,编写strlen函数int my_strlen(const char *str){    assert(NULL != str);    if('\0' == *str){    return 0;}else{    return (1+my_strlen(++str) );}}#include <stdio.h>#include <assert.h&g...

2018-06-24 09:42:09 553

原创 enum关键字

枚举enum例子:#include <stdio.h>enum Color{ GREEN = 1, RED,//2 BLUE,//3 GREEN_RED = 10, GREEN_BLUE//11}colorVal;int main(){ colorVal = RED; printf("%d\n",sizeof(colorVal)); printf("%d\n",colorVal ); ...

2018-06-21 10:46:42 257

原创 const与define的区别

#define PI   3.14首先:define,在程序编译的时候会把“#define PI   3.14”以后所有代码中的PI换成3.14,然后进行编译,#define的声明周期止于编译期,它存在于程序的代码段,在实际程序中它只是一个常数、一个命令中的参数,没有实际存在,它只是进行文本替换;const常量存在于程序的数据段,并在堆栈上分配了空间,它在程序中是存在的可以被调用,传递const常...

2018-06-03 16:16:58 129

原创 int与unsigned int隐式转换

最近看到一道经典例题:看代码#include <stdio.h>int main(){ unsigned int a = 6; int b = -20; (a+b)>6?printf(">6\n"):printf("<6\n"); return 0;} 结果是  >6为什么呢?这里涉及到了隐式转换的问题》》》》》C在以下四种情况下会进行隐式转换:       1...

2018-06-02 15:05:19 19987 1

转载 函数能否返回函数内指针

     我们大家都知道指针函数的返回指针不能指向函数内的自动变量,如果需要返回函数的内部变量的话,就需要将该变量声明为静态变量。为什么函数能够返回 静态变量的地址而不能返回局部自动变量的地址,到底什么样的对象能够返回其地址,而什么样的对象不能够返回其地址?静态变量与局部自动变量的主要区别是什 么?      要想明白这些就需要理解程序的内存布局情况     程序的存储区域分为:代码段、只读数据段...

2018-06-01 08:48:12 13377 3

原创 字符串的越界问题strcat的实现

字符串的越界会导致段错误例子:#include <iostream>#include <assert.h>using namespace std;char * Strcat(char *dest,const char *src) //把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')。{ while(*dest!='\0') { d...

2018-06-01 08:45:32 1148

原创 C语言预处理指令

#define 》》 宏定义#undef 》》撤销已定义的宏名#include 》》使编译程序将另一源文件嵌入到带有#include 的源文件中#if 》》#if后面的常量表达式若是true,就编译#if与#else之间的代码,否则跳过这些代码。#endif 》》 代表#if 的结束#else》》与if-else相似,代表另一选择#elif 》》 与else if相似#ifdef 》》如果有定义#...

2018-05-30 21:49:45 191

原创 VMware 虚拟机打开为黑屏挂起时有图像

前一段时间电脑上的虚拟机打不开了,点击开机就一直黑屏,挂起时能够看到显示,但是开机就黑屏。百度了之后找到了解决方案:(我是第一种方案就解决了)(据说可能是wegame的锅。。。)方法1:命令行窗口—输入 netsh winsock reset,然后重启计算机。方法2:VM->Settings->Hardware->Display在右面的内容栏中将Accelerate 3D gra...

2018-05-25 09:32:53 4379 2

原创 g++编译时默认支持C++11的几个配置小方法

//第一种,直接包含在源程序文件中,如第一行代码所示  #pragma GCC diagnostic error "-std=c++11"  #include <iostream>  using namespace std;  int main(int argc,char **argv)  {      cout<<"hello world!"<<endl;  ...

2018-05-24 10:19:09 3022

转载 C++11编译出现/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./a.out)

从源码编译安装升级了gcc以后,程序编译运行时偶尔会遇到这样的问题:[root@localhost ~]# ./a.out ./a.out: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by ./a.out)运行以下命令检查:[root@localhost ~]# strings /usr/lib/...

2018-05-08 19:39:03 936

转载 vim 退出命令(保存、放弃保存)

在命令模式中,连按两次大写字母Z,若当前编辑的文件曾被修改过,则Vi保存该文件后退出,返回到shell;若当前编辑的文件没被修改过,则Vi直接退出,   返回到shell。       在末行模式下,输入命令       :w     Vi保存当前编辑文件,但并不退出,而是继续等待用户输入命令。在使用w命令时,可以再给编辑文件起一个新的文件名。    [例6]       :w   newfile...

2018-05-08 17:03:50 1960

原创 struct与union的区别

(结构体)struct与(联合体)union都是由不同数据类型组成;但同一时刻中,union中只能存放一个被选中的成员,而struct中所有成员都存在;一个struct的长度等于所有成员长度总和(注意内存对齐);union的长度为最长成员的长度。对union其他成员赋值会对原先的值覆盖。...

2018-05-05 09:07:08 290

原创 C语言中关键字const

const修饰变量,变量里的数据可以完好无损,readonly;const不仅可以修饰基本类型,还可以修饰一些构造类型,指针,数组,指针数组,结构体数组等例子:const int a = 10;//去掉int const修饰a;a的值不能变        int const a = 10;//去掉类型int const修饰a,a的值不变const int *p;//去掉int *p不变int * ...

2018-05-04 09:56:56 111

原创 字符串函数系列

1、memset(void *str,int c,int count);#include <string.h>#include <stdio.h>#include <memory.h>int main(){ char s[100] = "yinzewen"; printf("before:%s\n", s); memset(s,'*',3); printf("a...

2018-05-04 09:51:48 80

原创 C语言关键字volatile

volatile修饰变量表示该变量易受外界影响发生改变,volatile强烈要求编译器每次对变量进行访问都要从内存中进行;int a = 10;b = a;c = b;当编译器扫到第一行时10赋给了a;自后a变量的值没有发生改变,a赋给了b,b赋给了c ,由于CPU访问内存的速度较慢,编译器为了提高效率,直接将10赋给了c。当是在多线程编程当中,在一个线程中变量的值没有改变,我们不能保证在其他线程...

2018-03-27 08:24:40 86

原创 C语言关键字const

        const 是constant的缩写,只要有变量前面用const修饰,就意味着该变量里面的数据是readonly。const可以修饰基本类型,构造类型,指针,等。const int a = 10;//去掉int a 的值不变int const a = 10;//去掉int a的值不变;const int a[10] = {0};//去掉int 数组里的内容不变const int *...

2018-03-27 07:58:13 78

转载 linux C的关键字extern

利用关键字extern,可以在一个文件中引用另一个文件中定义的变量或者函数,下面就结合具体的实例,分类说明一下。 一、引用同一个文件中的变量#include<stdio.h>int func();int main(){ func(); //1 printf("%d",num); //2 return 0;}int num = 3;int fu...

2018-03-23 10:13:30 2451

原创 linux C的数据类型(1)

1》变量与常量{    变量:指在其作用域内可以改变的量。    常量:值不会改变的量。它只能被访问,读;不能被写,赋值。    C语言中{整型,字符型,实型》称为基本数据类型;整型与实型》称为数值型;C中还有构造类型,指针类型,枚举类型和空类型}}2》基本数据类型{整型》{                long int,int,short int;unsigned long int,unsig...

2018-03-23 09:25:39 153

原创 将一字符串从小到大输出并删除多余相同的字符例如aaaabbbcc11122,输出12abc

一个cvte的笔试题#include <stdio.h>#include <string.h>void insert_sort(char *p,int len){ int i,j; char new; for(i = 1;i < len;i++) { new = p[i]; for(j = i-1;j >= 0;j--) { if(p[j] > ...

2018-03-23 08:51:44 579

原创 编写一个C语言函数。将i am from shanghai改成shanghai from am i

#include #include void daozhi(char s[]){char *head = s;char *end = s;char *p = s;while(*p++ != '\0')//p跳出后指向\0下一个(先执行*p在p++,在执行{}语句){if (*p == ' ' || *p == '\0'){end = p-1;whil

2018-01-26 19:49:18 423

空空如也

空空如也

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

TA关注的人

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