首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

2个面试题请问

2012-04-11 
2个面试题请教这些题都是我考古得来的,1.有2个unsigned变量是32位a,b相加后,超出unsigned类型。要求你写个

2个面试题请教
这些题都是我考古得来的,
1.   有2个unsigned变量是32位   a,b   相加后,超出unsigned类型。要求你写个函数实现相加并把结果高地址放入char   *ch,低地址放入char   *cl

请问什么是高地址/低地址?

2.   Which   is   the   correct   output   for   the   following   code

double     dArray[2]   =   {4,   8},   *p,   *q;
p   =     &dArray[0];
q   =   p   +   1;
cout   < <   q   –   p   < <   endl;
cout   < <   (int)q   -   (int)p   < <   endl;

为什么(int)q   -   (int)p   ==8?




[解决办法]
2:)为什么(int)q - (int)p ==8?
这里他把2个地址相减,因为sizeof(double) 是8, 所以输出是8。
[解决办法]
由于是 + 法,
所以,
即使溢出, 也就是溢出一个 高位1 而已,
所以 char *ch 为1,
char *cl 为 a+b(高位溢出就剩下低位) 就好了

热点排行