最近在读Computer Systems A Programmers Perspective,其中第二章有道练习题

Computer Systems A Programmers Perspective

这是段因为有符号数与无符号数隐式转换所造成的有问题的代码 ,下边是作者的解释

Computer Systems A Programmers Perspective

作者说将循环中的判断条件改为  i < length 可以修复此问题,其实不见得,理由如下:

unsigned (unsigned int)的范围为0 - 0xFFFFFFFF,加入length大于0x80000000,则会造成i溢出会为负数,此时循环体中a[i]就会访问位置区域而产生错误。

在编写C程序时要特别注意有符号数与无符号数隐式转换所造成溢出等问题。

 

 

相关文章:

  • 2022-03-10
  • 2021-08-08
  • 2021-06-29
  • 2022-12-23
  • 2021-09-18
  • 2021-11-03
  • 2022-02-26
猜你喜欢
  • 2021-04-22
  • 2022-02-18
  • 2021-06-26
  • 2021-10-17
  • 2021-11-07
  • 2022-01-04
相关资源
相似解决方案