编程预警:潜伏在无符号整数中的危机

最近几天在写代码的时候,一不小又掉进一个老相识的陷阱里,好生惨痛。曾经告诫过自己,曾经提示过别人,但还是防不胜防。

看看代码样例吧。在最开始,我写了类似这样的一个for循环。

typedef unsigned int UINT;
UINT i = 0;
UINT myData[3];
for (i = 0; i < 3; i++)
{
myData[i] = i;
}

后来由于算法的需要,我觉得循环的方向需要调换一下,于是,想当然地就顺手改成下边的代码,结果就杯具了。

for (i = 2; i >= 0; i- -)
{
myData[i] = i;
}

各位应该已经猜到杯具的结果是怎样的。悔不该自己欠手,非要很臭美地用一个无符号整数作循环变量。各位看官今后也要小心了,须知这无符号整数中潜伏着危机,特别是在作循环变量的时候,格外危险。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值