【据说是腾讯面试题】
#include <stdio.h>
#include <windows.h>
class A
{
WORD m_a1;
WORD m_a2;
A(){m_a1=1;m_a2=2;}
void fun(){printf( "%d,%d ",m_a1,m_a2);}
}
class B
{
DWORD m_a3;
B(){m_a3=3;}
void fun(){printf( "%d ",m_a3);}
}
main()
{
A a;
B *pb;
pb=B*(&a);
pb-> fun();
}
**以下资料来自网友回帖讨论**
输出结果:131073 = pow(2,17) + 1
将a指向一个A类型的域,在pb = (B*)&a时将pb强行指向了a所指向的区域
所以将会以B的DWORD格式读取A中2个WORD类型,所以值应该为2的17次方加1
1,A中的两个WORD连续存储,为00000000|00000001 00000000|00000010
2,强制转换之后,两个WORD成为一个DWORD
3,这个可能比较容易被忽略,这里用的是堆栈空间,因此WORD合并成DWORD时是2前1后.得为
00000000|00000010|00000000|00000001
4,可以试几个char被memcpy到一个int中的情况,也是这种结果.
**
这个题目考了几点:
1、关于sizeof(class),一个类的size只是此类中数据成员的size和。
2、考了内存分配的问题,内存分配都是从低端地址向高端地址分配的,所以是2的17次方加1而非2的16次方加2
分享到:
相关推荐
在C++面试中,经常会遇到一些考察编程基础和理解的问题。...这些面试题主要考察的是C++的基础知识,包括字符处理、内存操作、错误处理以及结构体内存布局。掌握这些基本概念对于成为一名优秀的C++开发者至关重要。
6. **结构体与联合体**:理解它们在内存布局上的差异,以及如何操作结构体成员。 7. **位运算**:了解位运算符(&、|、^、~、、>>)及其在编程中的应用。 此外,标签中的“vc6”可能是指Visual C++ 6.0,这是一个较...
从给定的文件信息中,我们可以总结出一系列与C和C++编程相关的知识点,涵盖了面试常见问题、变量声明与管理、函数定义与调用、内存布局以及数据结构的理解。以下是详细解析: ### 1. 局部变量与全局变量重名 在C/...
在面试中,`sizeof`经常被用来考察开发者对内存布局和数据结构的理解。例如,面试者可能被问到如何通过`sizeof`来判断一个结构体是否包含某个特定的成员,或者如何计算动态分配的数组的大小。 在数据结构领域,`...
《C++, Java, Android面试题大全》 在技术面试中,掌握C++, Java, Android这三种语言的关键知识点至关重要。这份资料集包含了这三个领域的大量面试题目,涵盖了基础到高级的各类问题,旨在帮助求职者全面准备面试,...
《百所名企C/C++招聘笔试面试题大全》是一个集合了众多计算机知名企业历年C/C++面试题目的资源,旨在帮助求职者准备技术面试。这个资料包涵盖了117套不同的面试题集,每套题集都包含了多个经典面试问题,是求职者...
C++经典常见面试题"的主题涵盖了这些语言的基础知识以及进阶应用,是面试者和学习者需要深入理解的重要领域。以下是对这些面试题所涉及知识点的详细解析: 1. **编程基础**: - **语法**:包括变量、数据类型、...
3. **结构体与联合体**:自定义数据类型,结构体与联合体的内存布局。 4. **面向对象编程**:类的定义、对象的创建,封装、继承、多态的概念和实现。 5. **模板**:函数模板和类模板的使用,模板元编程。 6. **异常...
下面,我们将深入探讨这份"经典C/C++面试题大全及答案"中可能包含的知识点。 1. **基本概念**:面试通常会从语言的基础开始,如C和C++的区别、面向过程与面向对象编程、内存管理(堆和栈的区别)、指针的理解与应用...
《中兴C++面试题集合解析》 C++作为一门强大的编程语言,广泛应用于系统软件、应用软件、游戏开发、设备驱动程序等多个领域。对于初入职场或即将毕业的同学们来说,掌握C++的核心概念和技术至关重要,特别是在面试...
标题中的"C/C++ 笔试面试题"表明这是一个关于C++编程语言的面试及笔试问题集合,主要针对求职者在找工作时可能会遇到的技术考察。这些题目通常涵盖C++的基础概念、语法、数据结构、算法、面向对象编程、模板、异常...
由于标签中提到了"c#",尽管主要焦点是C++,但我们可以预期面试题可能也会涉及一些与C#相关的概念,因为这两者在某些方面有共通之处。 1. **C++基础** - 数据类型:包括基本类型(如int、char)、指针、引用等。 ...
"高质量的C/C++编程面试笔试题"这个主题包含了诸多经典问题,旨在测试候选人在这些语言中的深度理解和实践经验。以下是一些可能涉及的关键知识点: 1. **基本语法**:面试通常会从C/C++的基本语法入手,包括变量、...
### C与C++相关面试题知识点详解 #### 非技术方面 - **仪表**: 应保持整洁,根据公司的文化和面试职位的不同选择合适的着装。 - **礼仪**: 包括但不限于准时到达、礼貌问候面试官等。 - **个人素养**: 涉及沟通能力...
以下是一些关于C、C++、Java面试题的详细解析,帮助你准备面试。 1. **C语言面试题**: - **指针与内存管理**:理解指针的基本操作,如指向、解引用和指针算术。理解动态内存分配(malloc/free)和栈内存管理。 -...
以下是对给定的面试题的详细解释: 1. **const 和 volatile 同时使用** 当一个变量同时被 `const` 和 `volatile` 修饰时,它表示这个变量在程序内部被视为只读,但其值可能在外部条件变化下发生变化,例如硬件中断...
例如“百问百答”可能包含各种常见问题的解答,“程序员面试宝典”可能包含全面的准备指南,“面试题”和“经典面试题”则可能专门针对常见的面试问题进行整理,而“C++面试题”和“c++笔试题汇总”可能更侧重于C++...
C++是一种广泛应用于系统软件、游戏开发、应用软件和实时嵌入式系统的高级编程语言。...在"二十套C++面试题"的文档中,你将找到各种各样的问题,涵盖了这些知识点,通过解答这些问题,可以检验自己的理解和技能水平。
在不同的继承方式(单继承、多继承、菱形继承、虚继承)下,对象内存中的布局会有所不同。 实现vector需要考虑内存分配策略,常见的有两种策略:以1.5倍或2倍大小增长。1.5倍的增长策略可以重用之前分配但释放的...
这在C语言中是一个典型的指针和数组操作的面试题,考察应聘者对内存布局和指针运算的理解。 2. 关于sizeof操作符的面试题: 在Windows NT下的32位C++程序中,sizeof操作符的使用被测试。在Func(char str[100])函数...