社区
C++ 语言
帖子详情
一道C/C++面试题
tanglei619
2011-11-18 03:15:37
#include <iostream>
using namespace std;
int main()
{
union V {
struct X {
unsigned char s1:2;
unsigned char s2:3;
unsigned char s3:3;
} x;
unsigned char c;
} v;
v.c = 100;
printf("%d\n",v.x.s3);
return 0;
}
结果为3,何解?
...全文
268
8
打赏
收藏
一道C/C++面试题
#include using namespace std; int main() { union V { struct X { unsigned char s1:2; unsigned char s2:3; unsigned char s3:3; } x; unsigned char c; } v; v.c = 100; printf("%d\n",v.x.s3); return 0; } 结果为3,何解?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tanglei619
2011-11-21
打赏
举报
回复
恩 3Q!~
softwarestudying
2011-11-18
打赏
举报
回复
v是联合体(共用体)变量,共有两个元素x和c,都需要一个字节,它们分配于同一个地址。而x是结构体变量,共有三个元素s1、s2、s3,分别占2位、3位、3位。分配内存时低位在前,最位在后。当有v.c=100(其二进制为01100100)时,各变量的关系及内存存储情况见图所示。
其中x的成员s3为二进制的011,即十进制的3,所以输出结果为3。
Zou_prince
2011-11-18
打赏
举报
回复
struct X {
unsigned char s1:2;
unsigned char s2:3;
unsigned char s3:3;
} x;
加入x的二进制为 XXXXzzzyyyxx
s1占最后2位置:xx;(2)
s2占最后5-2位置:yyy;(3)
s1占最后8-5位置:zzz;(3,如果不够,有多少位算多少位)
c = 100
二进制为:1100100
s3=11; s2=001; s1=00;
s3=3; s2=1; s1=0;
假如
c = 200
二进制为:11001000
s3=110; s2=010; s1=00;
s3=6; s2=2; s1=0;
假如
c = 300
二进制为:100101100
s3=001; s2=011; s1=00;
s3=1; s2=3; s1=0;
现在能理解么
dijisaiyaren
2011-11-18
打赏
举报
回复
struct X {
unsigned char s1:2;
unsigned char s2:3;
unsigned char s3:3;
} x;
本人初学者
有个东西不懂啊,这个结构体里面定义的是些啥东西?
unsigned char s1:2;
luciferisnotsatan
2011-11-18
打赏
举报
回复
位域
大小端
tanglei619
2011-11-18
打赏
举报
回复
谢谢帮助,我在想想哈!~
bdmh
2011-11-18
打赏
举报
回复
x和v公用一块内存,而且要看大小端,一般的如下
100二进制是1100100,那么s3是11,s2是001,s1是00
eyodo8
2011-11-18
打赏
举报
回复
这是位结构,100的二进制为01100100,s3是011,打印出来自然是3
嵌入式C/
C++
语言开发精华文章集锦(嵌入式C/
C++
开发者必看,很有价值的文章)
本压缩包文件集锦了嵌入式C/
C++
开发编程技巧,高效编程技术探索,C/
C++
语言相关技术问题的深层探索,并且对嵌入式C/
C++
程序员应聘常见
面试题
进行了深入剖析,对嵌入式C/
C++
开发者编程修炼,提升自身的相关能力具有很...
C/
C++
程序设计员面试试题深入剖析
首先,我们来看
一道
常见的
面试题
——实现strcpy函数。在C语言中,strcpy函数用于复制字符串,但面试官经常通过这个题目来测试面试者的内存管理和边界条件处理能力。例如,试题1中,由于string数组只有10个字节,尝试...
C /
C++
语言笔试题 200页 doc 文档
《C/
C++
编程笔试题详解:200页精华文档》 C/
C++
语言作为计算机科学的基础,一直是软件开发领域的重要工具。这份200页的doc文档包含了丰富的C语言笔试题,旨在帮助学习者巩固基础知识,提升编程技能。虽然其中部分...
C/
C++
程序设计员应聘常见面试试题深入剖析
本文旨在通过分析常见的
面试题
,帮助读者深入理解C/
C++
编程的基础知识,提高应对面试的能力。文章中的试题大多来源于实际的面试场景或论坛讨论,其中涉及的问题往往看似简单,实则考验着面试者的专业素养。 首先,...
C/
C++
程序员应聘常见
面试题
深入剖析
《C/
C++
程序员应聘常见
面试题
深入剖析》 在C/
C++
编程领域,面试往往是对开发者基础技能和问题解决能力的直接检验。
一道
看似简单的题目,如要求编写一个`strcpy`函数,实则是对程序员对内存管理、字符串处理以及安全...
C++ 语言
65,208
社区成员
250,519
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章