下载此文档

C 常见面试问题.doc


文档分类:IT计算机 | 页数:约25页 举报非法文档有奖
1/25
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/25 下载此文档
文档列表 文档介绍
: 常量指针: const int* p :指针指向一个常量, const 修饰* ,也就是说, *p是常量,不可变,但 p是变量, p可变(指向内容不可变,指向可以改变),不需要初始化,可以在定义后赋值。指针常量: int* const p :指针是一个常量, const 修饰 p ,即是 p 是常量, p 不可变,但指向的*p可变。(指向不可变,内容可变),必须初始化 ? 答: 对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向;对于栈来讲, 他的生长方向是向下的,是向着内存地址减小的方向增长。 ynamic_cast,const_cast,static_cast,reinterpret_cast 区别: 答:(1) dynamic_cast: 基类和派生类之间的转换,运行期间,会检查这个转换是否可能。表达式 dynamic_cast<T*>(a) 将a 值转换为类型为 T 的对象指针。如果类型 T 不是 a 的某个基类型,该操作将返回一个空指针。(2) static_cast<T*>(a) :编译期间处理, T和a 必须是指针、引用、算术类型或枚举类型,运行时转换过程中,不进行类型检查保证安全。(3 ) const_cast<T*>(a): 去掉类型中的常量 4. C++ 编译流程: 答: 1)预处理: 对所有伪指令进行处理(#开头的指令,如#define,#if ),删除注释,添加行号和文件名标识,保留#pragma 指令 2) 编译:对文件进行词法分析、语法分析、语义分析、优化,产生相关的汇编代码 3)汇编:将汇编代码文件翻译成机器指令,生成目标程序文件(), 该文件为二进制文件。 4) 链接:通过链接器将一个个目标文件链接在一起生成一个完整的可执行文件。(会发现有声明但没有定义的文件) 5. enum 类型占内存大小是多少? 答:无论 enum 有多少个成员, enum 的大小都是 4字节 :比 1大的整数中,除了 1和本身,再没有其他因数的整数称之为质数, 1不是质数也不是合数。质数一定是正数,因为比 1大 7. enum test { test1,test2=2,test3=1,test4 }; 上面代码中, test1 , test4 的值是多少? 答: test1 的值是 0, test4 的值是 2,默认的值随前一个变量加 1. 8. 类成员中,如果有 enum 类型的定义, (不是成员变量) ,该定义是不占内存的! num 类型中,如果不指定值,那么第一个默认的值是什么? 答:默认为 0,后面一次增加 1. 10. 用 new 生成对象时,加括号和不加括号的区别。答: 11. 使用构造函数注意事项: <1> 构造函数的函数名必须与类名相同,而且没有返回值,更不能用 voi d 来修饰。<2> 当一个类没有定义构造函数时,编译器会为每个类添加一个默认的构造函数。默认构造函数访问权限是 public 的,且为 inline 函数(常识)。 12. 13. 位运算符: 14. 如何判断字符指针是否已经到了字符串的末尾? 答: strlen 求出字符个数 N,然后判断字符串名减指针是否小于 N ( 0)。 15. 如何快速交换两个指针? I nt* temp = p1; P1= p2; P2= temp; 16. C har str[10]= ” abc ”;那么 sizeof(str) = 10; S trlen(str)=3, 不算结束符的字符个数。但, 若 char str[]= ” abc ”;S izeof(str)=4; S trlen(str)=3; 17. 可以使用[]的容器包括: vector,deque. 18. 当元素唯一且需要排序的时候,应选用容器 set (键值相等)或 map (键值不一样)。S et和 map 都会自动对元素进行升序排序。当元素不唯一且需要排序的时候,可选用 multimap 或者 multiset 。虽然也可以选用 vector ,但 vecto r 不会进行自动排序,调用 sort 函数, 并且需要调用 unique 和 erase 函数才能使到元素唯一。 19. 自定义的类型需要排序时,重载==和<、>运算符 20. D eque 常见用法: 答: deque 双向队列是一种双向开口的连续线性空间,可以高效的在头尾两端插入和删除元素。操作包括: 21. 仿函数是什么? 答: C++ 中仿函数是通过重载()运算符实现的,创建一个类似函数行为的对象。例如,在一个类中实现: I nt operator()(int x,int y) {R etu

C 常见面试问题 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数25
  • 收藏数0 收藏
  • 顶次数0
  • 上传人jiqingyong11
  • 文件大小271 KB
  • 时间2017-05-17