int i = -20; unsigned j = 10; i+j 的值为多少?为什么?

int和unsigned哪个类型更高?可以讲转化过程再讲的详细点吗,O(∩_∩)O谢谢... int 和unsigned哪个类型更高?
可以讲转化过程再讲的详细点吗,O(∩_∩)O谢谢
展开
 我来答 举报
星呈幻
2010-12-15 · TA获得超过481个赞
知道小有建树答主
回答量:214
采纳率:0%
帮助的人:270万
展开全部
-10,在运算时会隐含的进行类型转化,低类型向高类型转换,比如,float和double型的浮点数数进行运算,会自动将float型转换成double型,再进行运算。结果也是高类型的。
类型高低其实就是值域的覆盖范围,与CPU的字长和编译器都有关系。在Linux_32位系统中unsigned比int要低。但是切记这不是一定的,说不定winTC里就不是这样的定义了(我没试过)。
隐式转换规则如下:
1. 程式在执行算术运算时,低类型能够转换为高类型。
2. 在赋值表达式中,右边表达式的值自动隐式转换为左边变量的类型,并赋值给他。
3. 当在函数调用时,将实参值赋给形参,系统隐式地将实参转换为形参的类型后,赋给形参。
4. 函数有返回值时,系统将自动地将返回表达式类型转换为函数类型后,赋值给调用函数。

PS:隐含类型转换是很容易让人迷惑的,同样的代码,在不同的环境中结果可能不同,而且如果因为这个问题导致程序运行出了错误,是极难发现的。所以最靠谱的方法就是在程序中永远显式的做类型转换。
1095263823
2010-12-14 · 超过31用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:79.4万
展开全部
上面的答案正确,是-10出来得失int也就是整形
抢首赞 已赞过 已踩过<
你对这个回答的评价是?
评论 举报 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式