经典指数          
原因
852
浏览数
0
收藏数
 

math.h的abs返回值()
  • 不可能是负数
  • 不可能是正数
  • 都有可能
  • 不可能是0

     举报   纠错  
 
切换
1 个答案
哦凑,中枪了= =!  我再补充几点吧。 c中的函数申明为 int abs(int num); 正常情况下, num为0或正数时,函数返回num值; 当num为负数且不是最小的负数时(不要问我最小的int类型负数是多少,上面那个图里面有真相),函数返回num的对应绝对值数,即将内存中该二进制位的符号位取反,并把后面数值位取反加一; 当num为最小的负数时(即0x80000000),由于正数里int类型32位表示不了这个数的绝对值,所以依然返回该负数。 这就是设计这个库函数的时候为什么把返回值设置为int而不是unsigned的原因,当然如果把返回值设置为unsigned是不是更加合理呢,这个也许有更好的解释,期待...
 
切换
撰写答案
扫描后移动端查看本题