
面试题集(C/C++)
文章平均质量分 63
qychjj
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
C/C++题集
转自: http://hi.baidu.com/elliott_hdu/blog/item/411421dd5bf8dfe977c63876.html1.下列程序的输出结果为:(B)#includevoid main(){ char* a[ ] = { "hello", "the", "world"}; char** pa = a; pa++;转载 2009-11-25 15:45:00 · 824 阅读 · 0 评论 -
析构函数不是虚函数的话,可能有什么影响。
转自:http://blog.xdnice.com/blog84983i63444.html 通过父类指针,释放子类对象时,子类的析构函数可能调不到,导致内存泄漏。析构函数在对象生命周期结束或释放时调用。 如果基类的析构函数不是虚拟的,那么派生类的析构函数将不会被调用。 虚拟函数的引入是为了实现多态性(polymorphism),而虚拟析构函数是怎么实现多态性的...转载 2010-09-04 13:44:00 · 1982 阅读 · 0 评论 -
面向对象语言的特性
面向对象的基本概念对象类消息抽象面向对象主要特征(关系)封装性继承多态转载 2010-09-04 11:35:00 · 2575 阅读 · 0 评论 -
虚拟函数实现的机制
1 每一个类产生出一队指向虚函数的指针,放在一个表格之中。这个表格被称为虚函数表(Vtbl)。2 每一个对象被编译器添加了一个指针,指向相关的虚函数表。通常这个指针被称为Vptr。Vptr的设置(setting)和重置(resetting)由每一个类的构造函数(constructor)、析构函数(destructor)和拷贝赋值(copy assignment)运算符自动完成。每一个类所关联的type_info object(用以支持运行时类型识别,即RTTI)也通过虚函数表指出来,通常放在虚函数表的第转载 2010-09-04 12:01:00 · 828 阅读 · 0 评论 -
内存基本
<br />内存分配 <br />一个由c/C++编译的程序占用的内存分为以下几个部分: <br />1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量 <br /><br />的值等。其操作方式类似于数据结构中的栈。 <br /><br />2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时 <br /><br />可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表 <br />。 <br /><br />3、全局区(静态区)(st转载 2010-09-04 17:22:00 · 547 阅读 · 0 评论 -
C++中class与struct的区别
class和struct做类型定义时 只有两点区别:(一)默认继承权限。如果不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;(二)成员的默认访问权限。class的成员默认是private权限,struct默认是public权限。除了这两点,class和struct基本就是一个东西。语法上没有任何其它区别。转载 2010-09-04 11:14:00 · 724 阅读 · 0 评论 -
memcpy的实现
1)注意对输入指针是否为NULL的判断;2)输入和输出的类型 void *3)强制将void* 指针转换为char* 再进行拷贝操作void * memcpy(void *dest,void *src,unsigned count ){ if (dest == NULL || src == NULL) { return NULL; ...转载 2019-07-12 22:11:06 · 445 阅读 · 0 评论 -
浅谈unsigned int与int相加的问题
当unsigned int 和int相加时,计算过程中会强制提升(转化)为 unsigned int进行计算,表达式的类型也为unsigned int。int main() { int a = -30; unsigned int b = 15; int w = a+b; if(a+b > 0){ printf(...转载 2019-07-12 22:16:06 · 948 阅读 · 0 评论 -
C语言如何实现多参数函数
也就是c语言如何实现变长参数。int printf(const char* format, ...);调用惯例,参数从右到左入栈,具名参数format(称之为lastarg),在进程虚拟内存空间栈的顶端,即小地址端(栈是从大地址到小地址增长的。)使用方式:va_list ap;//定义一个变量, 一个指针。用来指向各个不定参数。类型为 void* 或 char*va_start...原创 2019-08-05 22:28:23 · 7722 阅读 · 0 评论 -
c++如何实现可变参数
除了用可变参数宏外,还可以用initializer_listint initializerSum(initializer_list<int> il) { int sum = 0; for (auto ptr = il.begin(); ptr != il.end(); ptr++) //类似于容器的操作 { sum += *ptr;...原创 2019-08-05 23:02:32 · 5647 阅读 · 0 评论 -
C++之虚拟析构函数
转自:http://blog.xdnice.com/blog84983i63444.html虚拟函数的引入是为了实现多态性(polymorphism),而虚拟析构函数是怎么实现多态性的?我想通过以下例子进行说明。如果基类的析构函数不是虚拟的,那么派生类的析构函数将不会被调用。虚拟析构函数的作用是确保实例化的对象能够调用自己类实现的虚构函数而被完整的虚构(释放).当通过基类的指针或引用去删除派生类的对象,而基类又没有虚析构函数时,结果将是不可确定的,派生类的析构函数永远不会被调用.如: #include us原创 2010-09-04 13:34:00 · 1648 阅读 · 1 评论 -
内联函数与宏
(1)宏是由预处理器对宏进行替代,而内联函数是通过编译器控制来实现代替。(1.1)预处理器不能进行类型安全检查,或者进行自动类型转换。(1.2)对于任何内联函数,编译器在符号表里放入函数的声明(包括名字、参数类型、返回值类型)。如果编译器没有发现内联函数存在错误,那么该函数的代码也被放入符号表里。在调用一个内联函数时,编译器首先检查调用是否正确(进行类型安全检查,或者进行自动类型转换,当然对所有的函数都一样)。如果正确,内联函数的代码就会直接替换函数调原创 2010-09-04 07:01:00 · 866 阅读 · 0 评论 -
C/C++程序员应聘常见面试题深入剖析
转自:http://dev.yesky.com/471/2306471.shtml1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可看出面试者在技术上究竟达到了怎样的程度转载 2009-11-26 17:17:00 · 577 阅读 · 0 评论 -
不使用任何中间变量计算一个字符串的长度
转自:http://www.blogjava.net/daning/archive/2007/04/23/112910.aspx 输入是一个指向字符串指针,要求不能用任何中间变量,计算出这个字符串的长度。思路:字符串以/0结尾,指针可以自加(p++)。既然不能使用临时变量,那就用递归吧。虽然也使用了临时空间,不过不是程序员自己申请的,而是系统申请的。判断指针p所指位置的值是否为/0转载 2010-02-04 16:59:00 · 969 阅读 · 0 评论 -
华为C/C++笔试题(附答案)
http://www.teecool.com/post/2007081104.html内容摘要:1.写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值(3分)int a = 4;(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);关键词:C语言面试题 C++面试题 华为面试题 本文地址:转载 2009-12-28 14:35:00 · 1921 阅读 · 1 评论 -
重载(Overload)、覆写(Override)和隐藏(hide)的区别
覆盖(Override)指的是派生类的虚拟函数覆盖了基类的同名且参数相同的函数1.分别位于基类与派生类中. 2.函数名字相同.3.参数相同.4.返回值也相同。即函数必须以模一样。 5.基类函数必须有virtual关键字 重载(overload)必须在一个域中,函数名称相同但是函数参数不同,重载的作用就是同一个函数有不同的行为,因此不是在一个域中的函数是无法构转载 2009-12-28 14:41:00 · 952 阅读 · 0 评论 -
返回值为什么不能用来区分重载?
有些函数在调用时,不需要返回值,因此此时就不能区分哪个函数了,如果返回值可以用于重载的话。原创 2009-12-28 15:01:00 · 834 阅读 · 0 评论 -
北京爱立信的面试题及流程
转自:http://hi.baidu.com/tantea/blog/item/909931aeccfb5df1faed50fe.html 笔试题:a, struct与class区别b, heap与stack的区别,以及标识一下一段程度中一些变量分配在哪里??(局部变量,全局变量,静态变量,常量,malloc出来的变量)c, 将一个单向链表反转过来的函数d, 一个string类,没有的原创 2009-12-28 19:08:00 · 4369 阅读 · 0 评论 -
面试心得摘要
(1)http://www.mzbao.com/mozhi/html/infodetail-11564.html 一定不能被面试管牵着鼻子走,不能问什么答什么,要以点带面把自己知道的东西都说出来。要充分利用开放性问题阐述自己的心得见解,就算没有开放性问题也可以自己主动的讲。还有一点就要一定要做好充分的准备。原创 2009-12-28 19:53:00 · 817 阅读 · 0 评论 -
main函数之前还有代码吗
main函数之前还有代码吗?main函数之前还有一些全局变量的初始化,对象的构造,main函数退出后会有全局变量的析构等。原创 2009-12-28 19:06:00 · 603 阅读 · 0 评论 -
调用函数时,上下文需要入栈的有哪些?
<br />调用函数时,上下文需要入栈的有哪些?原创 2010-09-03 10:23:00 · 907 阅读 · 0 评论 -
不用c/c++的标准库,如何实现一个函数
不用库的话,就只能用语言本身来实现需要的函数,在需要时可以使用os提供的api和系统调用。就是模仿标准库的实现。char *strncpy(char *dest, const char *src, size_t count){ char *tmp = dest; while (count) { if ((*tmp = *src) != 0) src++; tmp++...原创 2019-08-06 09:04:15 · 508 阅读 · 0 评论