C/C++面试
文章平均质量分 90
见贤思齐,见不贤而内自省
这个作者很懒,什么都没留下…
展开
-
C++中变量的类型
C++变量的作用域有多种,综述:(1)作用域为全局的变量在定义位置到文件结尾之间都可用(2)自动变量的作用域为局部(3)静态变量的作用域是全局还是局部取决于它是如何被调定义的1.自动变量a.函数中声明的函数参数和变量b.代码块中定义的变量 C++编译器对自动变量的实现为,程序留出一段内存,并将其视为栈(由于新数据放在原数据的上面,且新数据会最先被销毁,类似栈),原创 2015-09-21 08:18:23 · 581 阅读 · 0 评论 -
c中枚举类型enum, struct, union
1.枚举类型的定义enum 枚举类型名{枚举常量1[=整型常量], 枚举常量2[=整型常量], ...},这种方式可以替代constenum color { WRITE, BLACK, GRAY};默认情况下从0开始编号,之后每次+1(上述为WRITE=0, BLACK=1, GRAY=2)也可以自己定义特定的enum color { WRITE=7, BLACK=2, GRAY}...原创 2016-05-03 11:43:07 · 292 阅读 · 0 评论 -
错题解答与汇总
1.多级队列调度和多级反馈队列调度的区别时间片轮转调度算法:将所有的就绪进程按先来先服务的原则排成一个队列,每次调度,把CPU分配给队首进程,并令其执行一个时间片。时间片用完时,由计时器发出时钟中断请求,停止该进程,并将其放置到队列尾。时间片设置太大,退化成FCFS(Fisrt Come First Service),时间片设置太短,频繁的中断和进程上下文的切换,增加系统的开销多级队列...原创 2016-07-05 17:35:49 · 496 阅读 · 0 评论 -
C/C++面试问题汇总
1.C/C++中的static关键字1.C语言中的static关键字的作用(a)static作用于变量:分两种情况:在文件内的全局静态变量,在函数体内的局部静态变量1.static的全局变量:会存入到进程的.data区域,静态全局变量和其他的全局变量的存储地点并没有区别,都是在.data段(已初始化)或者.bss段(未初始化)内,但是它只在定义它的源文件内有效,其他源文件无法访问它...原创 2016-07-22 22:29:29 · 855 阅读 · 0 评论 -
《STL源码剖析》阅读笔记
STL中的分配器,vector, list, deque, map和set的实现原创 2016-08-27 22:00:26 · 985 阅读 · 0 评论 -
C++中的虚函数
1.虚函数的实现原理(http://www.cnblogs.com/malecrab/p/5572730.html)如果一个类含有虚函数,那么编译器会为该类生成一个与之对应的虚函数表,其中存放着该类所有的虚函数对应的虚函数指针。虚函数表每一行对应一个虚函数的地址。那么类的对象是如何找到虚函数表的呢?对于含有虚函数的类,构造该类的对象时,会自动的为其添加一个虚函数表指针vptr,vptr...原创 2016-08-23 16:08:07 · 294 阅读 · 0 评论 -
C++中的智能指针——auto_ptr, unique_ptr, shared_ptr和weak_ptr
http://www.cnblogs.com/lanxuezaipiao/p/4132096.htmlSTL一共给我们提供了四种智能指针:auto_ptr、unique_ptr、shared_ptr和weak_ptr所有的智能指针类都有一个explicit构造函数,以指针作为参数。比如auto_ptr的类模板原型为:templetclass T>class a转载 2016-08-24 22:52:30 · 1115 阅读 · 0 评论 -
《深度探索C++对象模型》读书笔记
第三章(The Semantics of Data)一个空的class的大小并不为0;class x { };//sizeof(x) = 1;即空的class并不是真的空,它有一个隐晦的1bytes,那是编译器安插进去的一个char,这使得这个class的两个objects得以在内存中配置独一无二的地址:X a, b;if(&a == &b) cout class的大小受到三原创 2016-08-28 18:25:29 · 467 阅读 · 0 评论 -
C++内存池(memory pool)管理
程序员在使用C++中的动态内存分配器时,new/delete, malloc/free等操作时,可能会出现以下问题:Memory Leak:new一块空间,但中间抛出错误,最后没有释放成功,导致memory leak;这个问题可以采用智能指针auto_ptr, shared_ptr, unique_ptr来解决Mismatching Operators:new和delete没有配对使用原创 2016-08-28 10:23:23 · 2752 阅读 · 0 评论 -
笔记:Effective C++
1.const的修饰,mutable可以释放变量的const属性记住就近原则另外:void f1(const Widget *pw);void f2(Widget const *pw);以上两者是等价的。2.迭代器是以指针为根据塑造出来的,所以迭代器的作用就像个T*指针。声明迭代器为const就像声明指针为const一样(T* const),表示迭代器本身不能被修改,即不能原创 2016-06-19 22:40:59 · 328 阅读 · 0 评论 -
读书笔记:Effective C++(二)
条款20:宁以pass-by-reference-to-const替换pass-by-valueclass Person{public: Person(); virtual ~Person();private: std::string name; std::stringi address;};class Student: public Persion{原创 2016-07-20 21:32:49 · 258 阅读 · 0 评论 -
C++中变量的声明与定义的异同
分离式编译机制允许将程序分割为若干个文件,每个文件可以被独立编译。这种方式必须解决一个问题,即如何在多个文件之间共享代码?(例如一个全局变量,在一个一个文件中被定义,如何在其他文件中被使用?)为了解决这个问题,即多个文件中使用同一个变量,C++将声明和定义分开:(1)变量在其中一个文件中定义,且只能在一个变量中定义(2)在其他需要使用的文件中,必须对该变量进行声明声明(原创 2015-11-10 21:20:10 · 542 阅读 · 0 评论 -
C中堆管理
内存区域可以分为栈,堆,静态存储区和常量存储区。局部变量,函数形参,临时变量都是在栈上获得内存的,它们获取的方式都是由编译器自动执行的。C 标准函数库提供了许多函数来实现对堆上内存管理,其中包括:malloc函数,free函数,calloc函数和realloc函数。使用这些函数需要包含头文件stdlib.h 堆中的所有东西都是匿名的,不能按名字直接访问,只能通过指针间接访问 ...原创 2015-10-13 10:25:09 · 1356 阅读 · 0 评论