C/C++面试精华:变量声明、比较、sizeof与strlen、static解析

需积分: 43 0 下载量 85 浏览量 更新于2024-07-28 收藏 532KB PDF 举报
"50个C、C++面试题,涵盖了变量声明与定义的区别、条件判断语句的正确写法、sizeof与strlen的区别以及C和C++中static关键字的异同点。" C/C++面试题是评估程序员对这两种语言理解和掌握的重要方式。下面将深入解析这些知识点: 1. 变量的声明与定义: - 声明变量主要是告诉编译器变量的名称、类型和作用域,但并不分配存储空间。例如,`int x;` 是一个定义,而 `extern int x;` 是一个声明。 - 定义变量则会为变量分配内存并初始化(如果有的话)。一个变量只能有一个定义,但可以在多个文件或作用域中声明。 2. 条件判断语句的写法: - 对于bool类型的变量,可以直接用 `if(flag)` 进行判断,true则执行A,false则执行B。 - 对于int类型的变量,应该使用 `if(0!=flag)` 避免将等于号误写为赋值号。 - 指针变量与NULL的比较应写为 `if(NULL==flag)`,同样是为了防止赋值操作符的误用。 - 对于float类型的变量,应该检查其值是否在某个范围内,如 `if((flag>=NORM)&&(flag<=NORM))`。 3. sizeof和strlen的区别: - sizeof是编译时操作符,用于获取变量或数据类型的大小(以字节为单位)。 - strlen是运行时函数,用于计算以'\0'结尾的字符串的长度。 - sizeof可以应用于类型或变量,而strlen仅适用于字符串常量或字符数组。 - 当数组作为sizeof的参数时,它不会退化为指针,而作为strlen的参数时会退化为指针。 4. C和C++中static的关键字: - 在C中,static用于创建局部变量(存留到程序结束)和外部变量(限制其可见性,使其只在当前文件中可见)。 - 在C++中,static还可以用来定义静态成员变量和静态成员函数,这使得它们成为类的共享属性或行为,而不是每个对象实例的独立属性或行为。 了解这些基本概念对于C/C++开发者来说至关重要,它们涉及到变量管理、条件控制、内存使用和面向对象编程的基础。在面试中,理解并能灵活运用这些知识点是展示技能的关键。在编程实践中,正确使用它们能够避免许多潜在的问题,如内存泄漏、逻辑错误和不必要的性能开销。