C语言隐式转换的陷阱
当使用unsigned类型和signed类型进行运算时,有符号的类型会自动转换为unsigned,这在进行条件判断的时候结果会让人匪夷所思。
比如下面的例子:
int main(void)
{unsigned int size = 10;if(size > -1) printf("AAA");else printf("BB");
}
看的快了会认为输出AAA,但是这个结果是输出BB,因为-1会自动转换为unsigned,转换后比size=10要大。
更多推荐
陷阱,语言,隐式
发布评论