搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ C语言基础题,求助
标题:
C语言基础题,求助
只看楼主
拾柒17
等 级:
新手上路
帖 子:2
专家分:0
注 册:2019-8-8
结帖率:
100%
楼主
已结贴
√
问题点数:20 回复次数:3
C语言基础题,求助
void foo(void)
{
unsigned int a=6;
int b=-20;
(a+b>6)?puts(">6"):puts("<=6");//put为打印函数
}
问代码输出是什么?
我不太懂的地方是答案说:
输出值是“>6”。因为a+b这里做了隐式的转换,把int转化为unsigned int.编译器就会把b当作一个很大的正数。
搜索更多相关主题的帖子:
C语言
基础
unsigned
int
puts
2019-08-08 16:11
rjsp
等 级:
版主
威 望:
507
帖 子:8890
专家分:53117
注 册:2011-1-18
第
2
楼
得分:10
首先你觉得 unsigned int + signed int 的结果应当是什么类型?
不管你怎么回答,都得存在类型提升的情况。假设你的回答是“结果是TYPE类型”的话,要么得将unsigned int转化为TYPE类型,要么得将signed int转化为TYPE类型,甚至有可能两者都需要转换。
打开 https://zh.
然后看其中的“整数提升”那节
2019-08-08 16:30
wufuzhang
来 自:广州
等 级:
贵宾
威 望:
21
帖 子:206
专家分:1346
注 册:2017-8-9
第
3
楼
得分:10
回复 楼主 拾柒17
下面这个帖子的楼主遇到跟你一样的问题。
https://bbs.bccn.net/viewthread.php?tid=495997&page=1#pid2706271
这个帖子里面他提了两个问题,5楼才是你想看的结果。
不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-08-08 16:38
拾柒17
等 级:
新手上路
帖 子:2
专家分:0
注 册:2019-8-8
第
4
楼
得分:0
回复 2楼 rjsp
学习到了,收货满满,谢谢
2019-08-11 10:40
4
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-496285-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.663524 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved