中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 08:01
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 刚发现一个很吃惊的问题: 查看 732 回复 2
楼 主 刚发现一个很吃惊的问题: 发表于 2004-06-03 00:00 ·  中国 重庆 渝中区 电信
银牌会员
★★★
积分 2,165
发帖 730
注册 2004-04-21 00:00
22年会员
UID 22966
性别 男
状态 离线
在DJGPP中下面程序输出竟然是0
int main()
{
unsigned short k=1,n;
scanf("%d",&n);
printf("%d\n",k);
return 0;
}

2 发表于 2004-06-04 00:00 ·  中国 湖北 武汉 鹏博士宽带
中级用户
★★
积分 286
发帖 59
注册 2003-04-08 00:00
23年会员
UID 1437
性别 男
状态 离线
我的蛮好的啊,是1。
3 发表于 2004-06-07 00:00 ·  中国 重庆 渝中区 电信
银牌会员
★★★
积分 2,165
发帖 730
注册 2004-04-21 00:00
22年会员
UID 22966
性别 男
状态 离线
确实是0。

原来是unsigned short k=1,n;变量n比 k先分配空间,在低位,
而scanf("%d",&n);类型不匹配,%d是32位的,就占了k的位置,结果就成了 k值是实际上的n值的高位值。


哭笑不得
论坛跳转: