6"); else printf("" />
牛骨文教育服务平台(让学习变的简单)
博文笔记

int和unsigned int相互转换的问题

创建时间:2016-03-04 投稿人: 浏览次数:4376

先看下面这段代码:

#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当做一个很大的正数!!!

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。