自定义博客皮肤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 111

原创 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 196 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 85

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

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

2021-01-19 17:46:36 144

原创 inline函数

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

2021-01-19 17:45:25 90

原创 函数重载

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

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

原创 函数默认值

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

2021-01-19 17:41:26 856

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

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

2020-05-07 11:32:20 386

原创 动态内存定义数组

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

2019-11-08 16:51:43 568

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

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

2019-11-08 15:53:05 1560

原创 对二维数组名的理解

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 316 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 113

原创 不定时总结 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 60

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

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

2019-10-17 21:18:13 416

原创 折半查找(二分法)

有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 171

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

小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 279

原创 不定时总结(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 63

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

辗转相除法:#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 290

原创 浮点数的误差问题 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 2314

空空如也

空空如也

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

TA关注的人

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