在使用for的时候,一粗心就犯了低级错误而造成了死循环,代码:
这是因为变量i的数据类型是无符号字节型,它的范围是0~255。在for循环中i++永远不会让i大于255。当i == 255时执行i++后,i的值又变回了0而不是256,所以造成了for死循环。这种因为数据类型定义不当而造成数据溢出等最终导致程序异常确实值得我们小心,比如有符号和无符号不注意也可能出错,如下所示同样会造成for死循环,i的数据类型应该定义成s16。
在使用for的时候,一粗心就犯了低级错误而造成了死循环,代码:
这是因为变量i的数据类型是无符号字节型,它的范围是0~255。在for循环中i++永远不会让i大于255。当i == 255时执行i++后,i的值又变回了0而不是256,所以造成了for死循环。这种因为数据类型定义不当而造成数据溢出等最终导致程序异常确实值得我们小心,比如有符号和无符号不注意也可能出错,如下所示同样会造成for死循环,i的数据类型应该定义成s16。