c 面试-一道C语言问题请大神解答

问题描述

一道C语言问题请大神解答

下面程序的运行结果是多少,为什么?
union

{

int i;

char x[2];

}a;

int main(void)

{

a.x[0] = 10;

a.x[1] = 1;

cout<<a.i<<endl;

return 0;

}

A、266
B、0
C、1
D、256

解决方案

A 256 + 10

解决方案二:

好吧 内存长这样
x[0] x[1]
int i:00000000 00000000 00000000 00000000
前两个字节是i和x重叠的部分,给x赋值改变了i
所以
x[0]=10 x[1]=1
int i:00001010 00000001 00000000 00000000
最后读的时候反过来
00000000 00000000 00000001 00001010

解决方案三:

A 256 + 10

解决方案四:

A,二楼分析的很是详细,,完全赞同

时间: 2024-12-27 21:40:33

c 面试-一道C语言问题请大神解答的相关文章

c语言-C语言小白请大神帮忙改一下代码,谢谢。

问题描述 C语言小白请大神帮忙改一下代码,谢谢. #include #include #include #include #include void choose();//选择函数 void shu();//猜数字函数 void paihang();//排行榜 void repaihang(int n);//更新排行榜 void replace();//初始化排行榜(没有记录时的排行榜) typedef struct { char name[10]; int score; }re; int ma

关于java越界的问题。。。。请大神解答

问题描述 关于java越界的问题....请大神解答 public class Solution { public String getHint(String secret, String guess) { int bulls=0; int cows=0; char[] sec = secret.toCharArray(); char[] gue = guess.toCharArray(); int[] s=new int[10]; int[] g=new int[10]; for(int i=0

线程-JVM相关基础面试题--请大神解答

问题描述 JVM相关基础面试题--请大神解答 (单选)下列关于JVM说法,错误的是() A.JVM通过专门的线程实现内存的回收. B.使用java命令时,可以通过参数来设置分配JVM的内存大小. C.JRE包括JVM及Java核心类库. D.目前主流版本JVM通过纯解释的方式运行Java字节码. 为什么正确答案是D?B错在哪里了?请热心大神帮我看看 解决方案 下列关于JVM说法,**错误**的是() 问你的是错误的是,不是正确的是.JVM使用JIT编译器来提速,不是纯解释,别的都是对的.

visual studio-用VS2005新建的MFC智能设备应用程序空白项目,为什么编译会出错?请大神解答

问题描述 用VS2005新建的MFC智能设备应用程序空白项目,为什么编译会出错?请大神解答 1>------ 已启动生成: 项目: 0001, 配置: Debug HPC-3000 (ARMV4I) ------ 1>正在编译... 1>stdafx.cpp 1>C:Program Files (x86)Windows CE Toolswce600HPC-3000includeARMV4Imalloc.h(45) : error C2143: syntax error : miss

tomcat-Myeclipse10.7版本装Tomcat7.0,但是进行连接时,出现报错,请大神解答!

问题描述 Myeclipse10.7版本装Tomcat7.0,但是进行连接时,出现报错,请大神解答! 换过Myeclipse10.7版本准备装Tomcat7.0,就出现这错误,机子上还装有Eclipse.请问应该怎么做,求大神解答.在线等 解决方案 用15 稳定版,10版,个人觉得不好用, 解决方案二: 用低版本试试,版本太高了也容易出现问题 解决方案三: eclipse上貌似用不了tomcat吧,在myeclipse上找到tomcat7的路径,jdk路径也要正确

新手求助C语言,求大神解答

问题描述 新手求助C语言,求大神解答 #include #include #include #include int main() { const int target; int min,max,count,guess; char c='Y'; srand(time(NULL)); while(1){ min=1; max=100; count=0; target=rand()%max+1; while(1){ guess=0; printf("输入一个数字 %d %dn",min,m

web服务器启动问题 请大神解答,看不懂代码帮忙备注下,而且什么会弹出cmd,并发布应用

问题描述 web服务器启动问题 请大神解答,看不懂代码帮忙备注下,而且什么会弹出cmd,并发布应用 set MainPath=com.cs.Server :start if not "%JAVA_HOME%" == "" goto gotJava_home set JAVA_HOME=D:jdk1.7.0_67 :gotJava_home set MEM_ARGS=-Xms128m -Xmx512m set JAVA_OPTIONS=-Duser.timezone=

jboss-as-7.1.0.Final启动问题?请大神解答

问题描述 jboss-as-7.1.0.Final启动问题?请大神解答 启动standalone.bat时出现以下情况,就一直停滞在那里不动,是啥情况. Calling "G:jboss-as-7.1.0.Finalbinstandalone.conf.bat" JBoss Bootstrap Environment JBOSS_HOME: G:jboss-as-7.1.0.Final JAVA: E:Javajdk1.8.0binjava JAVA_OPTS: -XX:+Tiered

java中为什么用final修饰了引用类型,但还是能修改对象,请大神解答下哈

问题描述 java中为什么用final修饰了引用类型,但还是能修改对象,请大神解答下哈 class Person{ String name; int age; Person(){} Person(String name,int age){ this.name=name; this.age=age; } public void ShowInfo(){ System.out.println("姓名:"+this.name+"年龄:"+this.age); } } pub