C/C++面试必看:经典题目解析

需积分: 3 2 下载量 186 浏览量 更新于2024-07-23 1 收藏 1.06MB PDF 举报
"这篇资源包含了C/C++面试中常见的50道题目,旨在帮助面试者了解和避免一些常见误区,比如指针与数组的区别、static的使用差异、内存区域的定位以及sizeof和strlen的区别等。" 在C/C++编程语言中,面试常会涉及到一些基础但重要的概念,这些概念往往是区分熟练开发者和初学者的关键。以下是四个典型的面试题目及其详解: 1. 变量的声明和定义 声明变量告诉编译器变量的类型和名字,但不分配内存空间。定义变量则分配内存并初始化。一个变量可以多次声明,但只能被定义一次。例如,extern关键字用于声明一个变量,表示其定义在其他地方。 2. 与“零值”比较的if语句 对于不同类型的变量(bool、int、float和指针),与零值比较时,应将零值放在比较运算符的左边,以防止将"="误写成"=="时编译器能检测到错误。例如,对于指针,应写为`if(NULL == flag)`,这样如果误写成赋值,编译器会给出错误提示。 3. sizeof和strlen的区别 sizeof是操作符,在编译时计算出变量或类型占用的内存大小;strlen是字符串处理函数,计算以'\0'结束的字符串的实际长度,它在运行时计算。sizeof可以用于类型或变量,而strlen仅用于字符串。数组作为sizeof的参数不会失去其维度信息,但在函数参数传递时,数组名通常退化为指向首元素的指针,因此传递给strlen时失去数组维度信息。 4. C和C++中的static关键字 在C中,static用于创建局部静态变量(持续到程序结束)、外部静态变量(只在当前文件可见)和静态函数(只在当前文件可见)。而在C++中,static还可用于定义类的静态成员变量和静态成员函数,它们属于类而非类的任何实例,这意味着它们是共享的,所有对象实例共用同一份存储。 了解这些基础知识是C/C++程序员的基本功,对于面试和实际开发都至关重要。深入理解这些概念有助于编写更高效、更可靠的代码,并在面试中展示出扎实的编程功底。