C/C++面试必备:经典易错题目解析

需积分: 3 3 下载量 148 浏览量 更新于2024-07-27 收藏 66KB DOCX 举报
"C/C++常见面试题目,包含50个经典易错的面试问题,适合准备面试者学习和复习。" 在C/C++编程语言中,面试常常会涉及一些核心概念和技术细节,以下是几个典型的面试题目及其解析: 面试题1涉及到变量的声明和定义。声明变量主要是告诉编译器变量的类型和名字,而定义则为变量分配存储空间。声明可以在多个地方进行,但定义只能有一次。extern关键字用于声明变量,表示变量的定义在别处。例如,外部变量通常只声明不定义,直到实际使用时才会分配内存。 面试题2考察了不同数据类型的条件判断语句。对于bool型,直接用flag即可;对于int型和指针,推荐将"零值"放在左边,以避免赋值和比较的混淆;对于float型,应确保数值在正常范围内。这种方法有助于提高代码的健壮性。 面试题3对比了sizeof和strlen的功能。sizeof是编译时操作符,计算类型或变量的大小;而strlen是运行时函数,计算字符串的长度(不包括结束符'\0')。sizeof对数组不退化,strlen接收字符串时,数组名转化为指针。 面试题4探讨了C和C++中static关键字的差异。在C中,static用于创建局部静态变量和外部静态变量,而在C++中,它还能用于创建静态成员变量和函数,分别实现类内共享和非实例化访问。 面试题5比较了malloc和new的用法。malloc是C语言中的动态内存分配函数,返回void指针,需要手动类型转换;new是C++的运算符,可自动类型转换,还能处理构造函数和析构函数。此外,new在内存不足时可能抛出异常,而malloc会返回NULL。 以上只是面试中的一部分问题,深入理解这些基本概念对于理解和编写高效、安全的C/C++代码至关重要。在面试准备过程中,考生还应该熟悉其他主题,如指针、内存管理、模板、异常处理、STL库的使用等。同时,熟悉标准库函数和编程范式,以及如何解决实际问题,也是提升面试表现的关键。