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

需积分: 43 1 下载量 4 浏览量 更新于2024-06-11 收藏 532KB PDF 举报
C、C++面试题 C、C++是两种广泛使用的编程语言,了解它们之间的区别和相似之处对于编程人员非常重要。下面是关于C、C++面试题的知识点总结: **变量声明和定义的区别** 在C、C++中,变量的声明和定义是两个不同的概念。变量的声明是指变量的名称和类型的声明,而不分配内存空间。变量的定义是指为变量分配地址和存储空间的过程。一个变量可以在多个地方声明,但是只在一个地方定义。如果一个变量使用extern修饰,那么它只是变量的声明,表明该变量将在文件以外或文件后面部分定义。 **bool、int、float、指针变量与“零值”比较的if语句** 在C、C++中,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语言的关键字static和C++的关键字static的区别** 在C中,static用来修饰局部静态变量和外部静态变量、函数。在C++中,static不仅可以修饰局部静态变量和外部静态变量、函数,还可以用来定义类的成员变量和函数,即静态成员和静态成员函数。static的记忆性和全局性的特点可以让在不同时期调用的函数进行通信,传递信息,而C++的静态成员则可以在多个对象实例间进行通信。