笔试/面试积累
文章平均质量分 76
小凡1991
我就是我
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
静态数据成员和静态函数成员
静态类成员包括静态数据成员和静态函数成员两部分。 一 、静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点:1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量。所以,静态数据成员的定义原创 2016-04-28 15:44:03 · 686 阅读 · 0 评论 -
内存分配中堆和栈的区别
数据结构的栈和堆 首先在数据结构上要知道堆栈,尽管我们这么称呼它,但实际上堆栈是两种数据结构:堆和栈。 堆和栈都是一种数据项按序排列的数据结构。栈就像装数据的桶或箱子 我们先从大家比较熟悉的栈说起吧,它是一种具有后进先出性质的数据结构,也就是说后存放的先取,先存放的后取。这就如同我们要取出放在箱子里面底下的东西(放入的比较早的物体),我们首先要移开原创 2016-10-27 15:32:32 · 640 阅读 · 0 评论 -
什么是0长数组?
在标准C和C++中0长数组如charArray[0]是不允许使用的,因为这从语义逻辑上看,是完全没有意义的。但是,GUN中却允许使用,而且,很多时候,应用在了变长结构体中,如:StructPacket{Int state;Int len;Char cData[0]; //这里的0长结构体就为变长结构体提供了非常好的支持}; 首先对0长数组做一个解释:原创 2016-10-27 15:45:01 · 652 阅读 · 0 评论 -
内存对齐的规则以及作用
首先由一个程序引入话题: 1 //环境:vc6 + windows sp2 2 //程序1 3 #include 4 5 using namespace std; 6 7 struct st1 8 { 9 char a ;10 int b ;11 short c ;12 };13 14 struct st原创 2016-10-29 15:46:40 · 378 阅读 · 0 评论 -
【面试】:数组和链表的区别
数组:数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。如果应用需要快速访问数据,很少或不插入和删除元素,就应该用数组。链表:链表恰好相反,链表中的元素在内原创 2016-10-30 21:19:00 · 494 阅读 · 0 评论 -
【面试】TCP和UDP的区别
TCP协议与UDP协议的区别 首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,原创 2016-10-30 21:44:05 · 689 阅读 · 0 评论 -
【面试】C语言与C++的区别
C是一个结构化语言,如谭老爷子所说:它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制),而对于C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。 所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说原创 2016-10-30 22:00:39 · 732 阅读 · 0 评论 -
100条经典C++语言笔试题目-前50题
链接至100条经典C++语言笔试题目-后50题原创 2016-12-03 10:04:28 · 10300 阅读 · 2 评论 -
100条经典C++语言笔试题目-后50题
链接至100条经典C++语言笔试题目-前50题原创 2016-12-03 11:22:08 · 4042 阅读 · 0 评论 -
轻松搞定面试中的二叉树题目
出处:http://blog.youkuaiyun.com/luckyxiaoqiang/article/details/7518888/树是一种比较重要的数据结构,尤其是二叉树。二叉树是一种特殊的树,在二叉树中每个节点最多有两个子节点,一般称为左子节点和右子节点(或左孩子和右孩子),并且二叉树的子树有左右之分,其次序不能任意颠倒。二叉树是递归定义的,因此,与二叉树有关的题目基本都可以用递归思想解决,转载 2016-11-25 13:52:42 · 688 阅读 · 0 评论 -
const常量与define宏定义的区别
#define RADIUS 100;const float RADIUS = 100;(1) 编译器处理方式不同 define宏是在预处理阶段展开。 const常量是编译运行阶段使用。(2) 类型和安全检查不同 define宏没有类型,不做任何类型检查,仅仅是展开。 const常量有具体的类型,在编译阶段会执行原创 2016-10-27 15:19:03 · 8446 阅读 · 1 评论 -
空指针和未初始化的指针的区别
================================================================================空指针的简单描述:它 “与任何对象或函数的指针值都不相等”。也就是说, 取地址操作符 & 永远也不能得到空指针, 同样对 malloc() 的成功调用也不会返回空指针, 如果失败, malloc() 的确返回空指针, 这是空指针原创 2016-10-27 15:04:12 · 3965 阅读 · 0 评论 -
C++中关键字const和mutable的用法总结
const关键字1、const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;两种写法在本质上是一样的。含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。 例如:const int nValue; //nV原创 2016-04-28 17:21:03 · 971 阅读 · 0 评论 -
new、delete、malloc、free关系
相同点:都可用于申请动态内存和释放内存不同点:(1)操作对象有所不同。malloc与free是C++/C 语言的标准库函数,new/delete 是C++的运算符。对于非内部数据类的对象而言,光用malloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数, 对象消亡之前要自动执行析构函数。由于malloc/free 是库函数而不是运算符,不在编译器控制权限之原创 2016-05-01 23:12:42 · 858 阅读 · 0 评论 -
面试题目——多态性的考查
笔试题目:#includeusing namespace std;class A{public: void foo() { printf("1\n"); } virtual void fun() { printf("2\n"); }};class B : public A{public: void foo() { printf("3\n"); }原创 2016-06-28 11:41:40 · 501 阅读 · 0 评论 -
算法与程序设计——由a-z,0-9组成3位的字符密码
题目:由a-z、0-9组成3位的字符密码,设计一个算法,列出并打印所有可能的密码组合(可用伪代码、C、C++、Java实现)C代码:#include #include int main(){ char a, b, c; for (a = '0'; a <= 'z';a++) { for (b = '0'; b <= 'z';b++) { for (c = '原创 2016-07-18 17:05:18 · 6678 阅读 · 0 评论 -
算法与程序设计——实现字符串翻转
题目:实现字符串反转函数代码:#include #include using namespace std;void main(){ string s = "abcdefghijklm"; cout << s << endl; int len = s.length(); char temp = 'a'; for (int i = 0; i < len / 2; i原创 2016-07-18 17:27:07 · 570 阅读 · 0 评论 -
C++为什么不能通过函数返回值区分函数重载?
函数的两个要素:参数与返回值。 如果同名函数的参数不同(包括类型、顺序不同),那么容易区别出它们是不同的函数。 如果同名函数仅仅是返回值类型不同,有时可以区分,有时却不能。例如:void Function(void);int Function (void);上述两个函数,第一个没有返回值,第二个的返回值是int 类型。如果这样调用函数:原创 2016-09-09 15:16:28 · 10767 阅读 · 0 评论 -
三种内存分配方式
内存分配方式有三种: 从静态存储区域分配。内存在编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。 在堆上分配,亦称动态内存分配。程序在运行的时候用malloc原创 2016-09-23 11:43:26 · 1566 阅读 · 0 评论 -
将字符串中连续出现的重复字母进行压缩
/*通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出现的重复字母进行压缩,并输出压缩后的字符串。压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz"。要求实现原创 2016-10-27 10:56:09 · 3342 阅读 · 0 评论 -
字符型变量ch的值为英文字母 的c语言表达式
英文字母包括大写字母和小写字母,用这样的表达式if((ch>='a'&&ch='A'&&ch原创 2016-10-27 11:03:16 · 17495 阅读 · 0 评论 -
编写类String的构造函数、析构函数和赋值函数
编写String类的4个函数:class String { public: String(const char *str = NULL);// 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operate =(const原创 2017-04-26 16:50:36 · 634 阅读 · 0 评论
分享