
C++语言
文章平均质量分 68
爱敲代码的学长
这个作者很懒,什么都没留下…
展开
-
细讲TCP三次握手四次挥手(一)
TCP/IP 是一个四层体系结构,它包含应用层,运输层,网际层和网络接口层(用网际层这个名字是强调这一层是为了解决不同网络的互连问题),不过从实质上讲,TCP/IP 只有最上面的三层,因为最下面的网络接口层并没有什么具体内容,因此在学习计算机网络的原理时往往采用折中的办法,即综合 OSI 和 TCP/IP 的优点,采用一种只有五层协议的体系结构,这样既简洁又能将概念阐述清楚,有时为了方便,也可把最底下两层称为网络接口层。TCP/IP是一个四层的体系结构,主要包括:应用层、运输层、网际层和网络接口层。原创 2023-07-29 18:18:26 · 338 阅读 · 0 评论 -
50条必背JAVA知识点(三)
基于Java语言进化而来的“捷码”低代码平台,是国内目前最新锐、最优秀的全技术栈低码PAAS开发工具之一,为广大的IT同行提供了一条专业的、低码化、迅捷开发的路径,一般1年左右工作经验的Java开发人员,经过短期的实战培训和学习,均能熟练使用捷码进行项目开发。特别的,父类中声明为private的属性或方法,子类继承父类以后,仍然是获取了父类中私的结构,只因为封装性(private权限修饰符)的影响,使得子类不能直接调用父类的结构而已。38.如果没显式的定义类的构造器的话,则系统默认提供一个空参的构造器。原创 2023-07-28 11:01:39 · 102 阅读 · 0 评论 -
50条必背JAVA知识点(二)
20.赋值运算符:= += -= *= /= %=,运算的结果不会改变变量本身的数据类型。由于常量“1”默认是int型的,所以编译会报错,使用short i += 1,则做到了+1的作用,也没有改变数据类型。21.&与&&、| 与 | | 的区别:&&、| | 具备短路功能,左边的条件成立或者不成立,右边的条件不用再判断,&、| 不管什么情况,都要把所有条件判断完。28.数组元素的默认初始化值:整型:0浮点型:0.0字符型:0或者’\u0000’,而非’0’布尔类型:false引用数据类型:null。原创 2023-07-28 11:01:27 · 105 阅读 · 0 评论 -
50条必背JAVA知识点(一)
6.Java中的名称命名规范:包名:多单词组成时所有字母都小写:xxxyyyzzz 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz常量名:所有字母都大写。Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达所操作的 boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false 用0表示。格式:java 类名。原创 2023-07-27 09:12:48 · 144 阅读 · 0 评论 -
C++基础知识点整理笔记(六)
智能指针:C++内存管理是一个令人很头疼的事情,尽管每次写完new都会写一个delete,但是如果程序还没有执行到delete的时候就跳转了或者函数返回了,那么就会导致内存泄漏,使用智能指针可以很大程度上的避免这个问题,因为智能指针就是一个类,当类的实例超出了作用域的时候,就会自动调用其析构函数,析构函数会自动释放资源。(二) dynamic_cast: 用于将一个父类的指针/引用转化为子类的指针/引用(下行转换)。(三) const_cast: 常量指针(或引用)与非常量指针(或引用)之间的转换。原创 2023-07-27 09:12:21 · 81 阅读 · 0 评论 -
C++基础知识点整理笔记(五)
总结来说,指针和引用都是用于处理内存和对象的重要工具,但它们之间有一些重要的区别,包括定义和声明方式、空值、内存地址、空间占用、空指针访问、空引用和函数参数传递等方面。在使用时,根据具体需求选择指针或引用进行内存操作和对象别名的引用。尽管内存是以字节为单位的,但是大部分处理器并不是以字节来存取数据,一般会以四字节、八字节或更长的单位来取内存。- 引用(Reference)是一个已存在对象的别名,它相当于对象的一个别名或别称。- 引用一旦初始化后,不能改变其所引用的对象,因此引用始终指向同一个对象。原创 2023-07-26 16:10:44 · 107 阅读 · 0 评论 -
C++基础知识点整理笔记(四)
总结来说,delete和delete[]的最主要的区别在于对于动态数组的释放:delete用于释放单个对象的内存,而delete[]用于释放动态数组的内存,并且使用方式也不同。delete[]用于对数组的指针进行释放,例如`delete[] arr;4. delete要求指针指向通过`new`分配的单个对象,而delete[]要求指针指向通过`new[]`分配的数组。1. delete用于释放通过`new`分配的单个对象的内存,而delete[]用于释放通过`new[]`分配的数组的内存。原创 2023-07-26 16:10:31 · 95 阅读 · 0 评论 -
C++基础知识点整理笔记(三)
8. 在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern “C”9. vs调试和gdb调试。7. C++11的新特性。原创 2023-07-25 11:08:20 · 64 阅读 · 0 评论 -
C++基础知识点整理笔记(二)
(二) 封装:将低层次的元素组合起来形成新的、更高实体的技术,隐藏了实现细节,使得代码模块化。(四) 多态:“一个接口,多种实现”,通过派生类重写父类的虚函数,实现了接口的重用。(三) 继承:通过派生类继承父类的数据和方法,扩展已经存在的模块,实现代码重用。(一) 基本概念:类、对象、继承;基本特征:封装、继承、多态。4. 静态链接、动态链接具体做了什么。6. 面向对象技术的基本概念与特征。3. gcc 和 g++的区别。5. C和C++的区别。原创 2023-07-25 11:08:07 · 94 阅读 · 0 评论 -
C++基础知识点整理笔记(一)
到底还是C++基础知识太薄弱了,没有系统的去学习过,都是碰到问题了才去查原因,有需求了才去查解决方案,虽然能够搞定手头问题,但是对C++的理解却始终浮于表面,后面将会分两到三篇文章对C++的基础知识点进行梳理,然后结合几个框架,逐步跟大家分享和探讨构建一个全流程的深度学习框架过程中涉及到的一些知识点。2. .c .cc .cpp .h .hpp .inl 这些后缀名都有什么区别。(三) 汇编阶段:gcc –c hello.s –o hello.o。原创 2023-07-24 21:15:56 · 194 阅读 · 0 评论 -
最全,面中率最高,C++经典面试题(八)
如果用 ifndef 包含某一段宏定义,当这个宏名字出现“撞车”时,可能会出现这个宏在程序中提示宏未定义的情况(在编写大型程序时特性需要注意,因为有很多程序员在同时写代码)。相反由于program once 针对整个文件, 因此它不存在宏名字“撞车”的情况, 但是如果某个头文件被多次拷贝,program once 无法保证不被多次包含,因为program once 是从物理上判断是不是同一个头文件,而不是从内容上。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。原创 2023-07-24 21:15:36 · 90 阅读 · 0 评论 -
最全,面中率最高,C++经典面试题(七)
fp3是一个指针,指向一个函数,这个函数的参数为空,函数的返回值是一个指针,这个指针指向一个数组,这个数组有10个元素,每个元素是一个指针,指向一个函数,这个函数的参数为空,函数的返回值是int型。fp2是一个指针,指向一个函数,这个函数的参数为3个int型,函数的返回值是一个指针,这个指针指向一个函数,这个函数的参数为int型,函数的返回值是float型。1) 引用必须被初始化,指针不必。原创 2023-07-23 01:16:15 · 59 阅读 · 0 评论 -
最全,面中率最高,C++经典面试题(六)
sizeof(p),p 为指针得到的是一个指针变量的字节数,而不是p 所指的内存容量。int (*s[10])(int) 函数指针数组,每个指针指向一个int func(int param)的函数。//0 分别指向各自的栈内存。原创 2023-07-23 01:15:58 · 81 阅读 · 0 评论 -
最全,面中率最高,C++经典面试题(五)
程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。被Const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。2) 有些集成化的调试工具可以对const 常量进行调试,但是不能对宏常量进行调试。答案:全局对象的构造函数会在main 函数之前执行。原创 2023-07-22 00:30:18 · 175 阅读 · 0 评论 -
最全,面中率最高,C++经典面试题(四)
重载:编译器根据函数不同的参数表,对同名函数的名称做修饰,然后这些同名函数就成了不同的函数(至少对于编译器来说是这样的)。重写:和多态真正相关。当子类重新定义了父类的虚函数后,父类指针根据赋给它的不同的子类指针,动态的调用属于子类的该函数,这样的函数调用在编译期间是无法确定的(调用的子类的虚函数的地址无法给出)。(1). 结构和联合都是由多个不同的数据类型成员组成, 但在任何同一时刻, 联合中只存放了一个被选中的成员(所有成员共用一块地址空间), 而结构的所有成员都存在(不同成员的存放地址不同)。原创 2023-07-22 00:30:04 · 66 阅读 · 0 评论 -
最全,面中率最高,C++经典面试题(三)
但是对于返回一个流对象,程序必须重新(拷贝)构造一个新的流对象,也就是说,连续的两个原创 2023-07-20 11:08:15 · 69 阅读 · 0 评论 -
最全,面中率最高,C++经典面试题(二)
声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。不能建立数组的引用。(3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中同样要给形参分配存储单元,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错误且程序的阅读性较差;这时,被调函数的形参就成为原来主调函数中的实参变量或对象的一个别名来使用,所以在被调函数中对形参变量的操作就是对其相应的目标对象(在主调函数中)的操作。原创 2023-07-20 11:08:05 · 68 阅读 · 0 评论 -
C++入门基础知识笔记整理(六)
在良好的C/C++编程习惯中,在声明一个变量的同时最好给该变量一个合适的初始值,否则可能会出现不可预料的错误。注:在C++98中字面常量0,既可以是一个整型数字,也可以是无类型的指针(void*)常量,但编译器默认情况下将其看成是一个整型常量,如果要将其按照指针方式来使用,必须对其进行强制转换。程序本意本意是想通过Fun(NULL)调用指针版本的Fun(int* p)函数,但是由于NULL被定义为0,Fun(NULL)最终调用的是Fun(int p)函数。方法,begin和end就是for循环迭代的范围。原创 2023-07-11 09:12:42 · 54 阅读 · 0 评论 -
C++入门基础知识笔记整理(五)
以inline修饰的函数叫做内联函数,编译时C++编译器会在,没有函数压栈的开销,内联函数提升程序运行的效率。(看到在加粗部分时,小伙伴肯定会想,这和c语言中的宏是不是很像了?如果在上述函数前增加inline关键字将其改成内联函数,在编译期间编译器会用函数体替换函数的调用2、特性c++有哪些技术可以代替宏常量定义 换用const函数定义 换用内联函数。原创 2023-07-11 09:12:24 · 50 阅读 · 0 评论 -
C++入门基础知识笔记整理(四)
所以在引用做函数返回值时最好还是给在函数中定义的变量加上static。这时你觉得你真的懂这段代码了吗?可能你会好奇了?为什么这儿是3了?下面来看看分析其实你换种写法,这儿的结果就会换成7,原因也很简单,正是上面图片中说的原因注意:如果函数返回时,出了函数作用域,返回对象还未还给系统,则可以使用引用返回;如果已经还给系统了,则必须使用传值返回。这句话说的是下面这种例子:大家是不是感觉这个传引用返回用起来很怪了,下面我们来分析一下它是如何返回的。总结:原创 2023-07-10 14:53:16 · 48 阅读 · 0 评论 -
C++入门基础知识笔记整理(三)
在C语言中有标准输入输出函数scanf和printf,而在C++中有cin标准输入和cout标准输出。在C语言中使用scanf和printf函数,需要包含头文件stdio.h。在C++中使用cin和cout,需要包含头文件iostream以及std标准命名空间。C++的输入输出方式与C语言更加方便,因为C++的输入输出不需要控制格式,例如:整型为%d,字符型为%c。注意:endl,这其中的l不是阿拉伯数字1,而是26个英文字母的l,它的作用相当于换行。原创 2023-07-10 14:52:58 · 65 阅读 · 0 评论