楼 主
刚发现一个很吃惊的问题:
发表于 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
性别 男
状态 离线
第 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值的高位值。
哭笑不得
论坛跳转: