首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

隐式变换

2012-08-10 
隐式转换int a, bunsigned int ub a + u1,同类型的signed总是向unsigned 转换吗?2,上面的程序我这样

隐式转换
int a, b;
unsigned int u;
b = a + u;

1,同类型的signed总是向unsigned 转换吗?

2,上面的程序我这样理解是正确的吗?
  a+u, a隐式转换为unsigned型,a+u为unsigned型
  b=a+u, a+u为unsigned型,b为int型,a+u隐式转换为int

3,例如int a=-1,隐式转换为unsigned int时怎么转换?

[解决办法]
1.不是。只是计算的时候 范围小的向范围大的转换。 unsigned int比signed int范围大。
所以这里这么转换。
2.前者对。 后者也是 a转换为unsigned int,结果也是unsigned int。
最后赋值的时候转换为int,,, 一般编译器会有警告
类型提升。
3.
-1 => 0xffffffff
=> unsigned int ....

热点排行