C/C++经典面试题总结

5星 · 超过95%的资源 需积分: 43 5 下载量 32 浏览量 更新于2024-07-26 收藏 532KB PDF 举报
C/C++面试题知识点 本文总结了C/C++面试题中的知识点,涵盖变量声明和定义、bool、int、float、指针变量与“零值”比较、sizeof和strlen的区别、C语言和C++语言中的static关键字等方面。 **变量声明和定义** 变量的声明和定义是 zwei 不同的概念。变量的声明是指变量的存在和类型的声明,而不分配内存空间。变量的定义是指变量的声明和分配内存空间。一个变量可以在多个地方声明,但是只在一个地方定义。如果变量前面加了extern修饰,这是变量的声明,说明此变量将在文件以外或在文件后面部分定义。 **bool、int、float、指针变量与“零值”比较** 在编程中,需要注意bool、int、float、指针变量与“零值”比较的方法。bool型数据可以直接使用if语句判断,int型数据需要使用if(0!=flag)判断,指针型数据需要使用if(NULL==flag)判断,float型数据需要使用if((flag>=NORM)&&(flag<=NORM))判断。需要注意的是,在int、指针型变量和“零值”比较的时候,把“零值”放在左边,这样当把“==”误写成“=”时,编译器可以报错,否则这种逻辑错误不容易发现,并且可能导致很严重的后果。 **sizeof和strlen的区别** sizeof和strlen是两个不同的操作符和函数。sizeof是一个操作符,strlen是库函数。sizeof的参数可以是数据的类型,也可以是变量,而strlen只能以结尾为‘\0‘的字符串作参数。编译器在编译时就计算出了sizeof的结果,而strlen函数必须在运行时才能计算出来。sizeof计算的是数据类型占内存的大小,而strlen计算的是字符串实际的长度。数组做sizeof的参数不退化,传递给strlen就退化为指针了。 **C语言和C++语言中的static关键字** 在C语言中,static关键字用于修饰局部静态变量和外部静态变量、函数。在C++语言中,static关键字除了上述功能外,还用于定义类的成员变量和函数,即静态成员和静态成员函数。需要注意的是,编程时static的记忆性和全局性的特点可以让在不同时期调用的函数进行通信,传递信息,而C++的静态成员则可以在多个对象实例间进行通信。