偶然一个C++群的人问:我的问题是(-1)/sizeof(int)和(-1)/4 ,有什么区别?
当时认为肯定结果都是0,运行才知道答案。。。
群里的人一同乱猜。。。看到运行答案,想了下之后才发现-1会被提升为unsigned类型这时就是0xFFFFFFFF/4了。。。而第二个表达式都是有符号的int型,结果当然为0。
找到一篇文章,http://blog.chinaunix.net/u2/70445/showart_1841233.html
偶然一个C++群的人问:我的问题是(-1)/sizeof(int)和(-1)/4 ,有什么区别?
当时认为肯定结果都是0,运行才知道答案。。。
群里的人一同乱猜。。。看到运行答案,想了下之后才发现-1会被提升为unsigned类型这时就是0xFFFFFFFF/4了。。。而第二个表达式都是有符号的int型,结果当然为0。
找到一篇文章,http://blog.chinaunix.net/u2/70445/showart_1841233.html