自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 理解类和对象

所以简单地总结:类就是图纸,而对象就是根据图纸建造的实体(例如房子) 封装:把属性集中在一个设计里 封装性:体现在不具有访问属性,访问限定符private和protected体现了类具有封装性 对象的存储 对于同一个类实例化的不同对象来说,成员变量时对象私有的,成员方法时所有对象共享的 那么这是怎样实现的呢? 编译器对于类的编译顺序 1)属性(成员变量) 2)方法(成员函数)的原型 3)对成员函数进行改写(添加this指针([类名] * const this)) this 指针指向对象,通过this指..

2021-01-21 22:39:16 180

原创 namespace 命名空间作用域

C中只有 全局作用域 和 局部作用域 C++中为解决命名冲突,提出这么一个概念 namespace TL13 { int a = 10; int b = 20; int Sum(int a,int b) { return 0; } } 使用方法: TL13::sum(10,20);//使用域名 using TL13::sum;//using声明,把声明后的符号暴露在当前using声明所在作用域 using namespace TL13;//usin

2021-01-19 17:48:17 305 1

原创 new与malloc,delete与free区别

malloc 只开辟空间 new 不仅开辟空间,系统还会调用构造函数 free 只收回空间 delete 先调用析构函数 再收回空间 new / delete 是关键字或运算符,可以重载 malloc / free 是函数 new返回值类型是安全的,不需要强转;大小由系统计算 malloc返回值类型不安全,需要强转;大小需要使用者计算 void* malloc(size_t size);//malloc函数原型 void free(void* ptr);//free函数原型 ..

2021-01-19 17:47:40 131

原创 C和C++的相互调用

C++中调用C代码 当编译器编译C++文件时,会优先选择cpp的编译方式 而C代码应该用C的编译方式编译 所以用以下处理方式 #ifdef __cplusplus extern "C"{ #endif C代码 #ifdef __cplusplus } #endif C中调用C++代码 //C++源文件可修改 //用extern "C" //C++源文件不可修改 //加中间层 //写一个接口,用C语言的方式编译,接口中调用C++函数 int a

2021-01-19 17:46:36 212

原创 inline函数

inline函数 在编译阶在调用点直接代码展开 不生成符号,仅文件内可见 inline函数与宏的区别: ​ inline函数在编译阶段 有类检查和安全检查 安全 ​ 宏 在预编译阶段 直接进行文本替换 不安全 inline函数和static修饰的函数有什么区别: ​ inline直接代码展开,没有开栈清栈开销 ​ static 有开栈清栈开销 生成符号 local属性 只在本文件可见 因为没有有开栈清栈开销,所以效率高,那为什么不把所有函数设为inline函数呢 inline缺陷:以代码膨

2021-01-19 17:45:25 146

原创 函数重载

C语言中:不能进行函数重载 C++中:可以进行函数重载 这与函数符号生成规则有关: C:只和函数名称有关 C++ :与函数原型有关 函数重载 ​ 1.函数返回值类型不同 不够成重载 因为函数调用时会产生二义性 ​ 2.函数名称不同 不够成重载 ​ 3.形参列表 ​ 1)形参类型不同 构成 ​ 2)形参个数不同 构成 ​ 3)形参顺序不同 构成 函数重载三要素:1.同名2.不同参3.同作用域(源于就近原则) 重载决议过程:精确匹配==>隐式转换

2021-01-19 17:44:33 154 1

原创 函数默认值

函数默认值 概念:函数设计过程中给予形参默认值,没有实参的话,有默认值 函数默认值赋给规则: 1.函数的默认值自右向左赋予, ​ 函数调用过程,实参入栈顺序自右向左; ​ 实参与形参匹配,自左向右 2.默认值不能重复赋予 3.默认值一般设在声明上 ​ 若声明与定义分开,默认值在定义上 ​ 调用点又在定义点之前,会导致默认值会失效 ...

2021-01-19 17:41:26 947

原创 第一篇:网络分层模型

** 为什么要进行网络层次划分 ** 首先,网络中最重要的就是数据交换。那么,为进行网络中的数据交换而建立的规则、标准或约定称为网络协议。 网络通信中存在各种各样的问题,有不同的规则,如果我们只用一种协议来规定,那么相互之间势必会产生影响,所以采用分层划分的结构。 分层划分带来的好处:既能规定不同层的完成的功能,又能实现层与层之间的改动而不相互影响 OSI七层模型与TCP/IP五层协议 我们这里...

2020-05-07 11:32:20 497

原创 动态内存定义数组

char a[3]="cs"; 这样,我们定义了一个定长的数组。但有时我们需要根据变量来定义数组,这时,我们就要用到动态内存来定义数组。 (这里,我们要知道另外的知识,定义一个定长的数组时,是在栈中申请内存,而用动态内存来定义数组时,是在堆中申请的,两者除了在大小上有区别(栈在1M左右 / 堆在1.2G左右),栈中申请的内存在函数结束后会自动释放,而在堆中申请的内存需要自己去释放。所以在申请大内...

2019-11-08 16:51:43 643

原创 递归的实现和内存问题

如图,有这样一个使用递归的Age函数。 当调用这个函数时,在栈中为它分配了一块内存,实际就是为变量n分配了一块内存,因为还没有到达边界值,所以会一直调用自己,那么就会一直产生新的变量,又要为新的变量分配内存,而不会覆盖在一开始的内存上。 当返回一个值一后,函数才意味着执行完,内存才会被释放,也就是说,如图,对递归来讲,只有执行到边界时,才开始返回值,当数据很大时,这需要大量的内存,也会消耗相对较...

2019-11-08 15:53:05 1864

原创 对二维数组名的理解

int arr[8][6]={0} 数据类型 arr : 第0行首地址(代表一整行) int(*p)[6] arr+i :第i行首地址(代表一整行) int (*p)[6] 把首地址转化为首元素地址 :加“ * ”: *(arr+i) /arr[i] int *p 得到某个元素的地址: *(arr+i)+n --> &arr[i][n] int *p...

2019-11-08 15:27:00 426 1

原创 自加自减符

先看一看i++和++i : ++i表达式的结果是直接进行加“1”,返回的是i这个变量本身,而i++是先把i的值 赋给一个临时变量tmp,再对i加“1”,而表达式的值返回的是临时变量的值。 综上:++i可以被作为一个左值进行赋值,而i++返回的是一个已经消失的临时变量,那么临时变量是无法被赋值的, 所以无法成为左值只能作为右值。 与指针: int a[]={1,3,6,43,78}...

2019-10-20 16:16:42 159

原创 不定时总结 2

关于 宏:只是单纯的字符替换,不要强加逻辑。 #define M(x,y,z) x*y+z int main() { int a=2,b=3,c=4; printf("%d",M(a+b,b+c,c+a));// a+b*b+c+a return 0; } 2.位运算符只能用在整型数据中。 3.用下标访问字符串。 ...

2019-10-17 21:21:40 101

原创 (面试题)一类题:给出一个未知进制的等式,求其进制

假设在进制下,下面的等式成立,567*456=150216,n的值是() A. 9 B.10 C.12 D.18 解:

2019-10-17 21:18:13 499

原创 折半查找(二分法)

有15个数字由大到小顺序存放在一个数组中,输入一个数字,要求用折半查找的方法找出该数是数组的第几个元素的值。如果该数不在数组中,则输出“无此数”。 #include<stdio.h> int fun(int *arr,int len,int key) { int max=len-1; int mid; int low=0; while(low<=max) { mi...

2019-10-17 20:44:18 235

原创 翻转数列(含腾讯笔试题)

小Q定义了一种数列称为翻转数列: 给定整数n和m, 满足n能被2m整除。对于一串连续递增整数数列1, 2, 3, 4…, 每隔m个符号翻转一次, 最初符号为’-’;。 例如n = 8, m = 2, 数列就是: -1, -2, +3, +4, -5, -6, +7, +8. 而n = 4, m = 1, 数列就是: -1, +2, -3, + 4. 小Q现在希望你能帮他算算前n项和为多少。 输入描...

2019-10-17 20:00:40 381

原创 不定时总结(1)

#include<stdio.h> int main() { int a=4321; char b[]="dhfguh"; printf("%d\n",printf("%d",a)); printf("%d\n",printf("%s",b)); return 0; } printf错误使用时会返回变量的长度。 #include<stdio.h> int ...

2019-10-15 20:31:43 110

原创 最大公约数的求解(初次接触递归算法)(辗转相除法)

辗转相除法: #include<stdio.h> int fun(int n,int m) { int tmp; if(n<m) { tmp=n; n=m; m=tmp; } while(m>0) { tmp=n%m; n=m; m=tmp; } return n; } int main() { printf("%d",fun(1...

2019-10-15 18:56:04 360

原创 浮点数的误差问题 1(C语言)

先来看一段程序: int main() { double n=0.01; double tmp=0; for(int i=0;i<40000000;i++) { tmp+=n; } printf("%f",tmp); return 0; } 从这段程序中可以明显看出编译结果产生了误差,所以浮点数的计算中是存在误差的。 #include<stdio.h> i...

2019-10-15 18:16:05 2563

空空如也

空空如也

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

TA关注的人

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