C/C++面试必知:关键知识点解析

需积分: 43 0 下载量 54 浏览量 更新于2024-07-22 收藏 532KB PDF 举报
"C/C++面试相关知识点" 在C/C++面试中,了解基础概念以及常见问题的解答是非常重要的,这不仅能够展示你的编程功底,还能体现你对语言特性的理解和应用。以下是对几个典型面试题的详细解析: 1. 变量的声明和定义: 声明(Declaration)主要是告诉编译器变量的类型和名字,而不实际分配存储空间。而定义(Definition)是分配存储空间并初始化变量。一个变量可以多次声明,但只能有一次定义。例如,`extern`关键字用于声明变量,表示变量在其他地方定义。如果在函数或代码块中直接赋值给变量,那就是定义,如`int x = 5;`。 2. 基本数据类型与“零值”比较的if语句: - 对于`bool`类型,`if(flag)`即可,因为`true`和`false`相当于非零和零。 - 对于`int`类型,正确写法是`if(0 != flag)`,这样如果误写成`=`, 编译器会报错。 - 对于`float`类型,应检查值是否在特定范围,如`if((flag >= NORM) && (flag <= NORM))`,其中`NORM`代表正常值的范围。 - 对于指针,比较时使用`NULL`,如`if(NULL == flag)`,同样,将“零值”放在左边能防止赋值误写为比较的错误。 3. `sizeof`与`strlen`的区别: - `sizeof`是操作符,在编译时计算,返回类型或变量占用的字节数。如`sizeof(int)`或`sizeof(array)`。 - `strlen`是字符串处理函数,运行时计算,返回不包含结束符`\0`的字符串长度。如`strlen("hello")`。 - `sizeof`可以作用于数组,不会丢失数组的信息,而`strlen`接收字符串常量或字符指针,实际上处理的是字符数组。 4. C中的`static`与C++中的`static`: - 在C中,`static`用于局部变量(只在函数内部可见,且在函数调用之间保持其值),外部变量(限制其作用域在当前文件内)和静态函数(只在当前文件可见)。 - 在C++中,`static`增加了静态成员变量和静态成员函数的功能。静态成员变量属于类,而非类的每个实例,因此所有对象共享同一份存储;静态成员函数不能访问非静态成员,但可以在不创建对象的情况下被调用。 理解这些基本概念和区别是C/C++面试中的关键,它们体现了你对语言底层机制的掌握程度。在准备面试时,不仅要熟记这些知识点,还要通过实践加深理解,以便在面试中能够灵活运用和解释。