自定义博客皮肤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++this指针

this指针的概念1、定义在 C++ 中,每一个对象都能通过 this 指针来访问自己的地址。this 指针是所有成员函数的隐含参数。因此,在成员函数内部,它可以用来指向调用对象。2、this只能在成员函数中使用成员函数默认第一个参数为T* const register this。(友元函数,全局函数不是成员函数)3、this指针不能再静态函数中使用静态函数如同静态变量一样,他不属于具体的哪一个对象,静态函数表示了整个类范围意义上的信息,而this指针却实实在在的对应一个对象,所以this指针

2022-01-11 10:11:41 589

原创 c++构造函数、析构函数

构造函数的作用:初始化对象的数据成员。构造函数分类:1、无参数构造函数2、带默认值的构造函数3、有参的(无默认值)构造函数4、拷贝构造函数5、一种特殊的构造函数,当对象之间复制时会自动拷贝构造函数6、若类中没有显示拷贝构造函数,则系统会生成默认拷贝构造函数...

2022-01-10 03:43:40 317

原创 对10个整数进行排序

对10个整数进行排序#include <stdio.h>int main(){ int arr[10]; for(int i=0;i<10;i++) { arr[i]=i; } for(int j=9;j>=0;j--) printf("%d ",arr[j]); return 0;}结果:

2022-01-08 13:08:38 188

原创 c++函数的重载

c++通过函数原型去区分函数。函数的原型包括函数返回类型、函数名形参列表(其中形参名可以省略),并且不需要具体函数。

2022-01-08 13:07:11 534

原创 逗号表达式

1、逗号运算符优先级最低;2、从左到右逐个计算;3、逗号表达式作为一个整体,它的值为最后一个表达式的值;

2022-01-07 23:30:51 173

原创 c++函数参数默认值

函数参数默认值:在声明函数或者定义函数的时候直接在参数后给赋值。默认值在编译的过程中被确定。在给函数参数赋默认值的时候须注意:(1)默认值要依次给,从右向左,不能跳着给;(2)当有实参就会把默认值替换掉;(3)给实参从左向右依次给;...

2022-01-07 23:20:48 392

原创 inline函数(内联函数)

在c++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数。inline int Max(int a,int b){return a+b;}内联函数的处理方式:在函数的调用点直接代码展开,假如频繁的调用就会造成较大的时间开销。内联函数的引入减少了函数调用过程的开栈和清栈的开销。使用内联函数的情况:函数本身内容比较少,代码比较短,函数功能相对简单,不能有循环语句。单一的函数才能使用内联函数。内联函数和宏的区别(面试问):inli...

2022-01-07 23:09:50 951

原创 c和c++中&的用法

&的用法:逻辑与:c=a&&b位于:c=a&b取地址符: int *p=&a引用(别名):int &s=a引用的基础规则:①当我们引用时必须初始化;②定义引用时,不能有空引用;③不能有引用的引用。...

2022-01-05 22:50:16 988

原创 c语言格式输入输出:%d %f

%d 整型输出 %ld长整型输出%c 输出字符%s输出一个字符串%f输出实数,以小数形式输出%o 以八进制数形式输出整数%x 以十六进制数形式输出整数%u 以十进制形式输出unsigned型数据(无符号)%e以指数形式输出实数%g根据大小自动选择f格式或者e格式,并且不输出无意义的零。...

2022-01-05 22:38:00 717

原创 栈和队列(c)

1、栈先进后出。——函数调用堆栈。弹夹,迷宫求解。数学计算(中缀表达式转后缀表达式,后缀表达式求值)! “2+3” “2 3 +”栈底:栈的存储空间的最底下位置。一般是一块空间的首地址。栈顶:动态变化的位置,会随着入栈和出栈的操作在申请空间上左右滑动。栈大小:记录总共能存储的数据元素的个数。通过与顺序表结构的对比,发现栈的顺序实现和顺序表的结构完全相同。栈和顺序表的区别主要在其提供的操作方法上。因为栈是先进后出,所以对于栈我们只需要提供顺序表的尾插和尾删方法就OK了。再加上初始化和销毁还有判满。

2021-12-06 09:42:47 305

原创 循环单链表

#include<stdio.h>typedef int DataType;typedef struct Node{ union { DataType data; int length; }; struct Node *next;}LoopList;#include"head.h"#include<stdlib.h>static LoopList *ApplyNode(DataType value,LoopList *next){ LoopLi

2021-12-06 09:07:08 85

原创 双向链表、双向循环链表

1、双向链表的概念双向链表还是一个链表:在逻辑上是连续存储的,在物理上是不连续存储的。双向链表的每个结点除了存储后一个结点的地址,还需要存储前一个结点的地址。————从前向后遍历、从后往前遍历。结构和方法的声明#include<stdio.h>typedef double DataType;typedef struct Node{ union { DataType data; int length; }; struc

2021-12-03 21:30:21 1626

原创 带头结点单链表、不带头结点单链表(头指针单链表)

1、头结点和头指针实现的区别1.1记录链表的类型不同:头指针是一个4字节的指针,记录第一个存储数据的结点的地址。头结点是一个结构体变量,使用这个变量的next域来记录第一个存储数据的结点的地址,头结点的data域可以使用联合体的方式记录链表的长度。1.2各个操作方法的定义不同如果是头指针实现,则方法中国接受这个链表的类型必须是二级指针。头指针实现使用一级指针就OK。2、单链表链表和顺序表的区别:(1)链表在逻辑存储上是连续的,在物理存储上是不连续的。(2)单链表属于链表中的一种,每一个存

2021-12-01 10:42:56 9963

原创 顺序表(C)

顺序表特点:在逻辑上是连续的,在物理存储空间上也是连续。--数组顺序表中存储的元素必须从空间的首位置开始储存,而且必须是连续存放,中间不能有空的空间。

2021-11-24 08:49:25 813

原创 时间和空间复杂度

1、时间复杂度一个算法的实现代码最基本的那个原操作执行的次数与问题规模n之间的函数关系。(渐进时间复杂度)不能以循环嵌套的层次来评判算法的时间复杂度。规则:·省略常数项·取最高的幂这一项·去掉系数2、空间复杂度算法执行期间所使用的额外空间与问题规模n之间的函数关系。从两个方面去评判算法的空间复杂度:(1)算法实现上有没有使用malloc或者new,并且申请空间与n相关。(2)算法有没有递归实现,并且递归的次数与n有关。...

2021-11-23 20:52:19 341

原创 八大排序算法

1、排序算法分类内排序(所有的数据都在内存上)①冒泡排序②选择排序③直接插入排序④希尔排序⑤堆排序⑥快速排序⑦归并排序⑧基数排序外排序:借助磁盘空间(文件)来进行排序...

2021-11-21 00:02:37 923

原创 tcp/ip协议详解

1、TCP/IP协议族是一个四层协议系统,自低而上分别是数据链路层、网络层、传输层、应用层。①数据链路层:实现了网卡接口的网络驱动程序,以处理数据在物理媒介上的传输。ARP协议:将目标机器的IP地址转换为其物理地址。(数据链路层使用物理地址寻址一台机器)RARP协议:仅用于网络上的某些无盘工作站。②网络层:实现数据包的选路和转发。IP协议:IP协议根据数据包的目的IP地址来决定如何投递它。ICMP协议:...

2021-11-17 11:19:54 11257

原创 进程与线程的区别

进程:就是正在运行的程序。线程:是进程内部的一条序列或执行路径,一个进程可以包含多条线程。线程实现方式:1、内核线程级;创建开销较大,但可以利用多处理器的资源2、用户线程级:开销小、无法使用多处理的资源3、组合线程级线程和进程的区别:◼ 进程是资源分配的最小单位,线程是 CPU 调度的最小单位◼ 进程有自己的独立地址空间,线程共享进程中的地址空间◼ 进程的创建消耗资源大,线程的创建相对较小◼ 进程的切换开销大,线程的切换开销相对较小...

2021-10-30 21:58:15 107

原创 c++纯虚类

纯虚函数类中没有实现的虚函数,叫做纯虚函数。用来强制子类必须实现的接口。抽象类/纯虚类拥有纯虚函数的类叫做纯虚类。纯虚类不能用来构造对象。#include<iostream>#include<string>using namespace std;class View//不能实例化{public: virtual void process(const string& str) = 0;//纯虚方法 void show() { cout<&l

2021-09-26 22:28:05 1609

原创 C++虚继承

被虚继承的类称为虚基类。虚基类在多重继承过程中如果有多个虚基类空间,会存在唯一一个虚基类空间,其他使用到该虚基类的地方,会变成一个指向唯一虚基类空间的指针。#include<iostream>using namespace std;class Base{public: Base(int a=0) { _a=a; } virtual void show() { cout<<"Base::show()"<<endl; } int _a;};

2021-09-26 22:06:18 91

原创 继承与多态

1、什么是多态?静多态 编译时期的 早绑定 函数重载、模板动多态 运行时期的 晚绑定 主要表现在继承中的多态c++中的多态分为静多态和动多态,静多态在编译时期,也称为早绑定,主要表现在函数的重载和模板,函数重载是在编译时期决定调用哪个函数,模板是在编译时期决定的模板类型参数。动多态是运行时期的多态,也称为晚绑定,主要表现在继承上的多态,动多态的发生是由于子类继承父类,父类中存在与子类相同(同函数名、同返回值、同参数)的虚方法,从而导致在继承过程中,子类的

2021-09-25 17:43:33 51

原创 编译链接过程

静多态——编译链接过程——早绑定函数重载 模板动多态——运行时期的多态——晚绑定继承与多态类与类之间的关系组合:一个类是另一个类的一部分代理:一个类的功能是另一个类的功能的子集继承:一个类是另一个类的一种继承的作用:防止代码重复的书写统一接口继承之后权限依然生效父类中的private权限不可继承其他权限都可以继承继承之后的权限不能超过继承的权限继承:#include<iostream>using namespace std;class A{public:

2021-09-16 23:06:22 50

原创 守护进程(linux)

守护进程:运行时间较长,并且在后台运行,没有控制终端与之相连的进程。守护进程编程流程:1、fork,退出父进程2、setsid() 创建新会话3、fork,退出父进程4、chdir("/") 改变工作路径5、umask(0) 清除掩码6、close()7、如果产生子进程,那么要处理僵死进程#include<stdio.h>#include<stdlib.h>#include<unistd.h>#include<string.h>#i

2021-09-15 13:26:37 56

原创 系统编程

1、计算机的基本组成冯*诺依曼体系:计算机由五大部分组成:·计算器·控制器·存储器 ——内存、主存·输出设备 ——磁盘 output·输入设备 ——磁盘 inputIO就是输入、输出。读取或者写入数据的效率相对低(内存操作)。系统总线:·控制总线:由于各个链接在数据总线和地址总线的部件都是共享这两类总线。·数据总线:用来在各个功能部件中间传输数据,是双向传输总线·地址总线:用来指出数据总线上的源数据或目的数据在主存单元的地址或io设备的地址,地址总线决定了CPU的寻址能

2021-03-28 15:51:42 288

原创 完数

#include <stdio.h>int main(){ int sum=0; int n,i; for(n=2;n<1000;n++) { sum=0;//将sum清零 for(i=1;i<n;i++) { if(n%i==0)//求出n的因子并累加 { sum+=i; } } if(sum==n) { printf("%d its factors are",n); for(i=1;i&l

2020-12-20 23:50:31 84

原创 猴子吃桃

猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子?int main(){ int x=1,x1; int n; scanf("%d",&n); for(int i=n-1;i>0;i--) { x1=(x+1)*2; x=x1; } printf("%d\n",x1); return

2020-12-20 01:44:18 204 1

原创 指针

指针:指针就是地址&变量名:获取该变量的地址,&称为取地址符int *p;//定义一个整型地址(指针)变量*p:从p访问p所指向的内容,间接访问,解引用int main(){ int a = 10; int b = 20; int *p = &a;//整型地址变量 保存整型地址值 //int *p1; //p1= &a;//等同上面p *p = 100;//*p等同a; a = 100; //int c = *p;//int c = a; p = &

2020-12-20 01:02:05 83

原创 水仙花数

水仙花数取个位丢个位`求100~1000之间的水仙花数#include <stdio.h>bool Flow(int n){ int tmp; int sum=0; int temp=n;//将n赋值给temp while(n!=0) { tmp=n%10;//取余 sum+=tmp*tmp*tmp;//求各位数上的立方和 n=n/10;//丢个位 } if(temp==sum)//判断各位数上的立方和是否与temp的值相等 return

2020-12-15 00:29:53 93

空空如也

空空如也

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

TA关注的人

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