int和unsigned int相互转换的问题
先看下面这段代码:
#include <stdio.h> void main() { unsigned int a=6; int b=-20; if((a+b)>6) printf(">6"); else printf("<=6"); }
乍看认为结果是<=6,其实是>6,这是因为a+b做了隐式的转换,把int转换为unsigned int. 编译器就会把b当做一个很大的正数!!!
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。