读书人

面试题

发布时间: 2012-02-05 12:07:14 作者: rapoo

面试题高手请进!
指出下面各个题目错误(只有一处)
1指出下列程序的错误
VOID B(ULONG *p)
{
*p=66*10000;
return;

}
VOID A()
{
unsigined short a = 10*1000;
B((ULONG*)(&a));
return;

}

[解决办法]
unsigined 打错字 ^_^

unsigned short a = 10*1000;
[解决办法]
*p = 66*10000;
这里错

unsigned short
2 byte
0 ~ 65535

66 * 10000 = 660000 > 65535
比unsigned short的范围大了
[解决办法]
a是两个字节,却要按四个字节赋值, 当然错了
[解决办法]
*p=66*10000;//句,因ULONG *p 就是定的,然是行到才造成越界。

是句:B((ULONG*)(&a)); 不程范,制使用不用的函。


[解决办法]
PPower(月亮光光,照地堂) 正确
B((ULONG*)(&a))才对 ^_^ "

读书人网 >C++ Builder

热点推荐