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当做一个很大的正数!!!
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了