C-看下下面的问题存在的BUG

WordPress 开发 WordPress 开发 主题:1098 回复:2322

C-看下下面的问题存在的BUG

甜柠檬 发布于 2017-07-11 字数 212 浏览 1111 回复 2
int sum(int a[],unsigned b)
{
int total = 0;
for(int i = 0;i < b - 1;++i)
{
total += a[i];
}
return total;
}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

偏爱自由 2017-09-02 2 楼

由于b的类型是unsigned类型,当与int类型进行运算时,要把int类型转换为unsigned类型,所以b-1与i进行比较的时候并不是-1,而是0xffffffff,如果unsigned是4字节的话,所以程序并不会返回预期的结果

甜柠檬 2017-07-21 1 楼

for(int i = 0;i < b - 1;++i) b=-1的时候 i=-2, 然后就有逻辑错误了