- 博客(13)
- 问答 (1)
- 收藏
- 关注
转载 C++中goto语句的使用
goto 语句允许把控制无条件转移到同一函数内的被标记的语句。goto语句的使用:1.保证函数只有一个出口的原则2.精简函数内二元动作的代码,如同个函数内的malloc 和 free,new 和 delete,加锁和解锁等操作(统一跳到函数结尾处释放)。如下例子:void Func(void){ char* p1=null; //此处,赋初值非常重要 char*...
2019-06-22 11:08:55
1986
转载 struct和typedef struct
1 首先://注意在C和C++里不同 在C中定义一个结构体类型要用typedef: typedef struct Student { int a; }Stu; 于是在声明变量的时候就可:Stu stu1;(如果没有typedef就必须用struct Student stu1;来声明) 这里的Stu实际上就是struct Studen...
2019-06-13 16:54:54
131
转载 C/C++语言对内存的使用
C和C++的编译器,把私有内存分为3块,基栈、浮动栈和堆。如图:1、基栈:也叫静态存储区。这是编译器在编译期间。就已经固定下来必须要使用的内存,如程序的代码段,静态变量,全局变量,const常量等。程序一调入内存,至少就要占用这么多空间。有个简单的不太准确的算法,exe文件有多大,差不多基栈就有多大。2、浮动栈:很多书上,就叫“栈”,就是程序开始运行,随着函数,对象的一段段执行,函数内...
2019-06-11 17:05:53
324
转载 const与#define的区别
(0) 相同两者都可以用来定义常量; #define PI 3.14159 // 常量宏 const doulbe Pi=3.14159; // 常量(1) 编译器处理方式不同 define宏是在预处理阶段展开; const常量是编译运行阶段使用;(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 c...
2019-06-06 11:29:47
778
转载 strcpy 和 memcpy函数的区别
strcpy和memcpy主要有以下3方面的区别。1、复制的内容不同。strcpy只能复制字符串,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。2、复制的方法不同。strcpy不需要指定长度,它遇到被复制字符的串结束符"\0"才结束,所以容易溢出。memcpy则是根据其第3个参数决定复制的长度。3、用途不同。通常在复制字符串时用strcpy,而需要复制其他类型数据时...
2019-06-04 15:16:17
929
原创 结构体和共用体(内存对齐原则)
结构体:结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体变量所占内存的长度是各个成员的总和,每个成员分别占有自己的存储空间。关键字:struct。共用体:共用体(union)把几种不同数据类型的变量存放在同一块内存里,共用体中的变量共享同一块内存,后赋值的会覆盖重写前面内存空间。共用体变量所占内存的长度为定义时的最长成员的长度。关键字:union。...
2018-11-22 21:00:19
3531
1
原创 设置随机数种子(lua学习笔记)
原理:利用数值(num+ 系统时间 )转化为string类型,反转之后截取部分数字当做随机数种子。local num = 10086 math.randomseed((tostring(num) .. tostring(os.time()%10000)):reverse():sub(1,10))string,reverse(s) : 返回字符串 s 的翻转串。string.sub(s, i...
2018-07-10 20:00:42
2873
转载 多态的实现方法(笔试题)
问:c++中多态是通过那种方式实现?答:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数。1.用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。 2.存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和...
2018-06-30 18:22:30
527
原创 Socket编程步骤(笔试题)
问:socket编程执行send之后系统进行哪种操作?答:如果采用系统是采用阻塞模式,则系统执行send之后会等待对方返回结果才执行下一步。如果是非阻塞模式则将当前线程挂起,执行系统下一个操作。问:什么是粘包?答:出现粘包现象的原因是多方面的,它既可能由发送方造成,也可能由接收方造成。发送方引起的粘包是由TCP协议本身造成的,TCP为提高传输效率,发送方往往要收集到足够多的数据后才发送一包数据。若...
2018-06-22 10:33:12
2856
原创 基本排序算法(笔试题)
问:各种基本排序算法的稳定性和平均时间复杂度?答:稳定:选择排序O(n^2)、快速排序O(nlog2^n); 不稳定:冒泡排序O(n^2)、插入排序O(n^2)。参考:各种排序算法的稳定性和时间复...
2018-06-21 16:10:26
1096
原创 STL容器的区别和联系,使用的地方(笔试题)
问:vector、list、map、set 的区别和联系,使用的地方?答:区别:vector是连续内存存储,支持[]操作符,list反之;Set和Vector的区别在于Set不包含重复的数据。 联系:vector和list为顺序容器,map和set为关联容器;使用:当需要高效的随即存取,而不在乎插入和删除的效率,使用vector,否则使用list,两者都想兼顾则使用deque;当需要使用key-v...
2018-06-21 10:35:36
439
原创 内联函数、静态函数和普通函数的区别(笔试题)
问:内联函数、静态函数和普通函数之间的区别?答:1.内联函数和普通函数最大的区别在于内部的实现方面,当普通函数在被调用时,系统首先跳跃到该函数的入口地址,执行函数体,执行完成后,再返回到函数调用的地方,函数始终只有一个拷贝; 而内联函数则不需要进行一个寻址的过程,当执行到内联函数时,此函数展开(很类似宏的使用),如果在 N处调用了此内联函数,则此函数就会有N个代码段的拷贝。2.static函数和普...
2018-06-19 18:04:48
5943
2
原创 继承与组合(笔试题)
问题:继承和组合那种是高内聚低耦合,为什么?答:组合是高内聚低耦合。1.高内聚:组合是通过对现有的对象进行拼装(组合)产生新的、更复杂的功能。2.低耦合:组合不破坏封装,整体类与局部类之间松耦合,彼此相对独立。面向对象编程讲究的是代码复用,继承和组合都是代码复用的有效方法。组合是将其他类的对象作为成员使用,继承是子类可以使用父类的成员方法。引用一个生动的比方:继承是说“我父亲在家里给我帮了很大的忙...
2018-06-19 10:37:36
500
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人