Chinaunix首页 | 论坛 | 博客
  • 博客访问: 78735
  • 博文数量: 8
  • 博客积分: 228
  • 博客等级: 二等列兵
  • 技术积分: 153
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-04 22:00
文章分类
文章存档

2012年(8)

分类: C/C++

2012-10-15 11:04:14

类型提升问题

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)”不可能满足

阅读(2714) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~