C/C++面试重点:声明与定义的区别、变量比较、sizeof与strlen、static的作用

4星 · 超过85%的资源 需积分: 15 7 下载量 66 浏览量 更新于2024-07-26 2 收藏 1.05MB PDF 举报
"C、C++面试题.pdf包含了一些经典的面试问题,主要涉及变量的声明与定义的区别,数据类型的比较,sizeof与strlen的区别,以及C和C++中关键字static的不同用法。" 在C和C++编程中,理解变量的声明和定义至关重要。声明变量主要是告诉编译器变量的存在,但并不分配内存空间。例如,当我们在一个源文件中声明一个变量并加上extern关键字,这表示变量在其他地方定义。变量只能被定义一次,通常在定义时分配内存空间。如果变量未初始化,其内存将包含不确定的值,对于外部变量,它们的内存是在程序链接时分配的。 面试题2探讨了不同数据类型与“零值”比较时的if语句。对于bool型,只需判断其是否为真即可;对于int型,为了避免赋值操作符“=”的误用,建议将零值放在比较操作符的一侧;对于指针,NULL与之比较确保指针不为空;对于float型,需确保值在特定范围内,防止浮点数的精度问题导致错误。 sizeof和strlen是两个不同的概念。sizeof是C/C++中的操作符,它在编译时就能计算出表达式或类型所占内存的字节数,不论该变量是否已初始化。而strlen是一个C库函数,用于计算以'\0'结尾的字符串的长度,它在运行时计算,且仅适用于字符串。 面试题4涉及到static关键字的使用。在C中,static用于创建局部静态变量(在函数内,只初始化一次,且在函数结束后保留其值)和外部静态变量(作用域限制于当前文件)。而在C++中,static还可以应用于类的成员,创建静态成员变量(所有对象共享同一份存储)和静态成员函数(不与特定对象关联,可以直接通过类名调用)。 了解这些基础知识对于C和C++开发者来说非常重要,它们不仅有助于编写更有效的代码,也是面试中常见的考察点。掌握声明与定义的区别、正确的数据类型比较方式、sizeof和strlen的使用场景,以及static的关键字特性,能帮助开发者写出更健壮、更具可维护性的代码。