C/C++面试必看:变量声明与定义、零值比较、sizeof与strlen、static的差异
需积分: 9 84 浏览量
更新于2024-07-27
收藏 675KB PDF 举报
"这篇文档包含了四道C/C++面试题目,主要涉及变量声明与定义的区别、数据类型与零值比较的if语句、sizeof与strlen的区别以及C与C++中static关键字的不同用法。这些题目旨在考察面试者的基础知识和对语言特性的理解。"
面试题1详解:
在C/C++中,变量的声明告诉编译器变量的类型,但不分配内存。而定义则实际分配内存并初始化变量。声明可以重复,但定义只能有一次。例如,extern关键字用于声明变量已在别处定义,通常用于链接阶段解决符号引用。
面试题2详解:
不同数据类型的变量与零值比较时,应使用适当的if语句形式,以避免潜在的错误。对于bool型,非零被视为true,零被视为false,因此直接比较即可。对于int型,使用不等于0的表达式来防止赋值和比较的混淆。指针变量与NULL比较时,应将NULL放在左边,以利用编译器的错误检查。对于float型,需设定一个正常值范围(NORM)进行比较,因为浮点数不能直接与0比较。
面试题3详解:
sizeof是C/C++中的一个操作符,其在编译时计算出表达式或类型占用的内存字节数,即使对于数组,它也能返回整个数组的大小。而strlen是C库函数,用于计算以'\0'为结束符的字符串的长度,它在运行时执行,不考虑非字符串数组。需要注意,数组作为函数参数时,会退化为指针,因此sizeof得到的是指针的大小,而不是数组的大小。
面试题4详解:
在C语言中,static关键字可以用于局部变量(创建静态局部变量,其在程序执行期间只初始化一次)和外部变量(使外部变量仅在本文件内可见)。而在C++中,static还可以用于类的成员变量和成员函数,创建静态成员变量意味着所有类的实例共享同一份存储,而静态成员函数不具备this指针,可以直接在类的非实例上下文中调用。
总结:
这四个面试题目涵盖了C/C++的基础语法和特性,包括变量声明与定义、条件判断的正确形式、内存计算操作符和静态成员的用法。理解这些知识点对于任何C/C++开发者来说都是至关重要的,尤其在面试或实际开发中,能够准确地应用这些概念将有助于提高代码质量和解决问题的效率。
134 浏览量
2598 浏览量
125 浏览量
1201 浏览量
104 浏览量
139 浏览量
2024-07-21 上传
NUC-94210
- 粉丝: 342
- 资源: 77
最新资源
- Marlin-1.0.x.zip
- 基于51单片机的出租车计价器.zip
- eSvin-开源
- 做一个真正的营业部团队经营者
- 2898096_fenkuai_image(OK).rar
- RedTeamCheatsheet:红色分组操作或CTF中使用的所有常用命令。 这是一项正在进行的工作,将随着时间的推移而更新
- TODO-List-Assignment:我已经为todo清单创建了一个任务,
- ece-开源
- mg
- 色谱模型参数优化器(EDM,LI):App查找适合最佳实验数据的EDM(线性等温线)模型参数。-matlab开发
- ignition-code-editor:将内联代码编辑添加到点火页面
- 为团队高留存而奋斗
- 翻译应用:翻译应用
- 和其mysql备份 v1.1
- packr:打包您的JAR,资产和JVM,以在Windows,Linux和Mac OS X上分发
- gtest.zip框架