


这些都是截取赵欢老师上课时候的ppt
第一个第三个没有解释我谈一下自己的观点好了hh

第一个我们unsigned i,单纯的说,无符号数怎么样都是大于等于0的,所以说这是一个死循环。
有的同学可能会说,无符号数小的减去一个比自己大的数会怎么样呀?
其实无符号数和有符号数是一样的,都是加上减数的补码
0111减去0100(7减去4)
那么其实就是0111加上1100
等于0011(进位1丢弃)
结果等于
0011(4)这是正确的。
第二个其实sizeof返回的是unsigned的数据,而且i-delta>=0这是个表达式,里面有符号数i和无符号数delta,这时候符号数i会转换成无符号数i,那么实际上无符号数减去无符号数结果怎么样都是大于等于0的,所以说,还是一个死循环。

这里是同理的哈哈,sizeof返回两个无符号数,然后for循环的判断式

本文源自赵欢老师的课程内容,探讨了无符号数和有符号数在编程中进行运算时可能出现的问题。例如,无符号数的循环条件可能导致意料之外的结果,以及类型转换规则在大小比较中的影响。通过举例说明了无符号数相减和类型转换导致的错误判断,强调了理解这些概念的重要性。

2028

被折叠的 条评论
为什么被折叠?



