类型提升问题
在
1.不同变量类型相加减或者变量与变量之间相比较
2.变量和数值相比较时
往往需要考虑类型的提升问题
类型提升,低容量的变量往往向容量较大的方向转换。
各类型提升方向如下:
char short->int->usigned->long->double
float->double
典型例子:
1.#include
int
main()
{
unsigned a = 1;
int b = 1;
while(a + b >= 0) --b;
return 0;
}
2.#include
int
main()
{
unsigned a = 1;
int b = 1;
while(a + b > 0) --b;
return 0;
}
3.#include
int
main()
{
unsigned a = 1;
int b = 1;
while(a + b > -1) --b;
return 0;
}
该三个例子分别运行
1.死循环
2.2次
3,直接退出
关于例子3,主要是-1的转化为无符号数为无符号整数最大所以
“while(a + b > -1)”不可能满足
阅读(2757) | 评论(0) | 转发(0) |