C/C++面试题集锦:实战解析与答案
需积分: 0 176 浏览量
更新于2024-08-01
1
收藏 353KB DOC 举报
这段内容主要涉及两个C/C++编程方面的面试题及其解答。首先,第一个问题是关于指针和数组赋值的题目。程序中定义了一个整型变量`a`和一个指向`a`的指针`p`。通过`*p=0x500`,指针`p`被赋予了一个地址并将其指向的内存位置设置为`0x500`。然后,`a`被赋值为`*(&p)`,即取`p`的地址内容,由于`p`指向`a`,所以两次赋值的结果是相同的,`a`的值与`p`相同,都是`0x500`。因此,`if`条件判断`a == (int)p`成立,输出结果为"equal!"。
第二个问题是关于结构体和数据类型的题目。首先,`sizeof(struct bits)`是一个正确的表达式,因为它计算的是`struct bits`类型的存储占用空间。结构体`bits`定义了8个二进制位的字段,虽然它们都被声明为`signed int`,但因为是位域(bit fields),实际占用的空间会比8个`int`的总和小,具体大小取决于编译器的实现。在标准情况下,这个结构体在32位系统上可能占4个字节(32位系统中`int`通常占4个字节)。然后,`struct bit`的定义被修正为`typedef`形式,使其成为一个新的类型名,便于后续使用。如果将`int`类型改为`char`,每个字段将占用1个字节,所以`sizeof(struct bit)`在32位系统上会变为8个字节。
这两个问题考察了面试者对C/C++基本概念的理解,包括指针、内存操作、数据类型和结构体的特性,以及`sizeof`运算符的使用。理解这些问题有助于面试者展示他们的基础扎实程度和解决问题的能力。同时,也提醒应聘者在面试时要注意不同编译器可能带来的差异,这在实际工作中是非常重要的考虑因素。
2014-05-30 上传
2019-03-02 上传
360 浏览量
2023-11-19 上传
2023-09-16 上传
2023-06-23 上传
2023-07-29 上传
2023-07-18 上传
2023-08-18 上传
![](https://profile-avatar.csdnimg.cn/eb192eb889d14ca9aa21b5b86fad8abd_lzwaf.jpg!1)
Ellizzn
- 粉丝: 0
- 资源: 20
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景