C/C++面试精华:函数分类、零值比较、sizeof vs strlen & C++ static特性

需积分: 43 13 下载量 10 浏览量 更新于2024-09-25 收藏 532KB PDF 举报
本文档涵盖了50个关于C和C++的基础和进阶面试题,主要涉及程序结构、函数概念、数据类型、运算符、内存管理和关键字使用等内容。以下是部分知识点的详细解读: 1. **主函数与全局函数**: - C和C++程序中,每个程序只有一个主函数(main函数),它作为程序的入口点,不可被其他函数调用,仅由操作系统调用。 - 全局函数是定义在程序外部的,可以被其他文件中的函数访问。未显式声明为`extern`的全局函数默认具有全局作用域。若希望限制其访问范围,可以使用`static`关键字使其成为静态全局函数,仅在当前文件内可见。 2. **成员函数与全局函数的区别**: - 成员函数是类中的函数,属于类的组成部分,用于操作类的属性和行为。它们有返回值或声明为`void`,并可能包含布尔型返回值用于表示函数执行结果。 - 声明变量和定义变量的区别在于,声明是告诉编译器存在某个变量,而定义则是为其分配内存空间。 3. **变量类型比较与操作符**: - 对于`bool`、`int`、`float`和指针变量,分别使用`if`语句与零值进行比较。在C/C++中,为了避免潜在的误操作,`==`和`=`之间的比较顺序很重要,尤其是对`0`的比较。 4. **sizeof与strlen的区别**: - `sizeof`是一个操作符,用于计算变量或类型占用的内存大小,编译时计算,适用于数组和类型。 - `strlen`是库函数,计算字符串的实际长度,需在运行时确定,并且对字符串结束标志`\0`有特定依赖。 5. **C与C++的static关键字**: - 在C中,`static`用于局部静态变量和外部静态变量的声明,以及静态函数。 - 在C++中,`static`除了上述用途,还可以定义类的静态成员变量和静态成员函数,允许在类的不同实例之间共享状态。 这些面试题旨在测试应聘者对C/C++基础语法的理解,以及他们在实际编程中的应用能力。熟练掌握这些问题将有助于面试者展现他们的技术实力和编程习惯。