首页
博客
专栏课程
下载
问答
社区
会员中心
论坛
代码
直播
Chrome 插件
能力认证
导航
全部
社区活动
我有疑问
博文收录
Ada助手
问答
架构师李肯带你学C语言
花神庙码农的博客
...
社区活动
我有疑问
博文收录
Ada助手
问答
架构师李肯带你学C语言
花神庙码农的博客
登录/注册
社区
C语言
帖子详情
假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是
yerssa
2010-03-24 04:52:52
假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是?
这是让求括号中a>b?a++:b++的值啊还是a+b的值啊?
...全文
给本帖投票
4513
22
打赏
收藏
假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是
假设变量a,b均为整型,表达式(a=5,b=2,a>b?a++:b++,a+b)的值是? 这是让求括号中a>b?a++:b++的值啊还是a+b的值啊?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
发表回复
按下Enter换行,Ctrl+Enter发表内容
编辑
预览
轻敲空格完成输入
显示为
卡片
标题
链接
打赏红包
右脚小拇指
2010-03-25
打赏
举报
回复
这还算是简单一点的。
因为运算符的优先级还比较清淅
a=5,b=2,a>b?a++:b++,a+b
1:计算a>b?a++:b++,
得到的结果是 a++ 。
2: 计算 a+b, 第一步执行了 a++,
所以到第二步时,a=6; b=2
得到的结果是 8
可能考的重点就在于表达式 a++ 吧
不知名小ITer
2010-03-25
打赏
举报
回复
8,a和b中,总有一个要加1,然后取,号运算符中最右边的一个表达式的值,即为8.
赵4老师
2010-03-25
打赏
举报
回复
VC调试时按Alt+8,TC或BC用TD调试,打开汇编窗口看每句C对应的汇编不就啥都明白了吗。
jbz001
2010-03-25
打赏
举报
回复
刚用vc6.0运行了一下,结果a+b等于8
jbz001
2010-03-25
打赏
举报
回复
可以把这句表达式拆解成这样:
a=5;
b=2;
a+b;
a>b?a++:b++;
因为a++是后加的,就把这个三元表达式放到了后面,况且这个放在后面对结果没有影响。因为a++是最后运行的。
最终结果:
a=7
b=2
ll2323001
2010-03-24
打赏
举报
回复
学习学习哦
huanmie_09
2010-03-24
打赏
举报
回复
[Quote=引用 15 楼 yerssa 的回复:]
引用 14 楼 huanmie_09 的回复:
引用 13 楼 yerssa 的回复:
引用 12 楼 liu1987lang 的回复:
引用 7 楼 yerssa 的回复:
引用 3 楼 yuzl32 的回复:
逗号表达式,取最右边的值,也就是:a+b
a++不是后加吗?结果怎么是8呢?
a++在前,a+b在后。先做完a++ a的值是6 所以是8
a++不是先把a……
[/Quote]
还没看明白?
(a>b?a++:b++),
这里5>2判断之后表达式取a++的值。
这时a是没有增加啊,还是5,
但执行下一个逗号表达式的时候a已经加1了。
yerssa
2010-03-24
打赏
举报
回复
[Quote=引用 14 楼 huanmie_09 的回复:]
引用 13 楼 yerssa 的回复:
引用 12 楼 liu1987lang 的回复:
引用 7 楼 yerssa 的回复:
引用 3 楼 yuzl32 的回复:
逗号表达式,取最右边的值,也就是:a+b
a++不是后加吗?结果怎么是8呢?
a++在前,a+b在后。先做完a++ a的值是6 所以是8
a++不是先把a的值拿去运算,之后,再使a的值+1吗?
a=……
[/Quote]
不看问题呢?
huanmie_09
2010-03-24
打赏
举报
回复
[Quote=引用 13 楼 yerssa 的回复:]
引用 12 楼 liu1987lang 的回复:
引用 7 楼 yerssa 的回复:
引用 3 楼 yuzl32 的回复:
逗号表达式,取最右边的值,也就是:a+b
a++不是后加吗?结果怎么是8呢?
a++在前,a+b在后。先做完a++ a的值是6 所以是8
a++不是先把a的值拿去运算,之后,再使a的值+1吗?
[/Quote]
a=5,b=2,(a>b?a++:b++),a+b
逗号表达式,计算顺序分解:
a=5;
b=2;
a>b?a++:b++ <==> 5>2=1?a++:b++; <==> a++;
a = 6;
a+b=6+2=8;
yerssa
2010-03-24
打赏
举报
回复
[Quote=引用 12 楼 liu1987lang 的回复:]
引用 7 楼 yerssa 的回复:
引用 3 楼 yuzl32 的回复:
逗号表达式,取最右边的值,也就是:a+b
a++不是后加吗?结果怎么是8呢?
a++在前,a+b在后。先做完a++ a的值是6 所以是8
[/Quote]
a++不是先把a的值拿去运算,之后,再使a的值+1吗?
liu1987lang
2010-03-24
打赏
举报
回复
[Quote=引用 7 楼 yerssa 的回复:]
引用 3 楼 yuzl32 的回复:
逗号表达式,取最右边的值,也就是:a+b
a++不是后加吗?结果怎么是8呢?
[/Quote]
a++在前,a+b在后。先做完a++ a的值是6 所以是8
shen_wei
2010-03-24
打赏
举报
回复
知道怎么做就行了 没有必要研究
tan870426
2010-03-24
打赏
举报
回复
逗号表达式,最右边的即是最后结果~
建议LZ补习一下逗号表达式相关内容
ameyume
2010-03-24
打赏
举报
回复
逗号运算符的优先级最低。
linxingyu404
2010-03-24
打赏
举报
回复
我真觉得学这些东西没有一点用处,开发程序谁会这样写啊,为什么要花大量精力来学这些呢?
yerssa
2010-03-24
打赏
举报
回复
[Quote=引用 3 楼 yuzl32 的回复:]
逗号表达式,取最右边的值,也就是:a+b
[/Quote]
a++不是后加吗?结果怎么是8呢?
打酱油的扫地僧
2010-03-24
打赏
举报
回复
逗号运算符的运算顺序是
从左至右运算,返回最后一个表达式的值
,LZ按这个思路想就知道答案了。
ameyume
2010-03-24
打赏
举报
回复
关系运算符>的优先级大于三目运算符。
所以,(a>b?a++:b++)
=>
(1?a++:b++)
=>
a++;
所以a=6,
最后a+b=6+2=8.
james_hw
2010-03-24
打赏
举报
回复
感觉这种题得拿着课本来做,工作中遇到这种代码,直接打回重写。
yuzl32
2010-03-24
打赏
举报
回复
逗号表达式,取最右边的值,也就是:a+b
加载更多回复(2)
c基础面试题“卡尔电气”
c基础面试题“卡尔电气”
C语言期末考试题及其答案1.pdf
C语言期末考试题及其答案1.pdf
C语言课后习题答案前5章.doc
C语言课后习题答案前5章.doc
C
++
程序设计基础(第4版)习题解答
为更多的学生提供详细的习题解答,让你更好的自学。
2023年全国高等教育自学考试高级语言程序设计一.doc
2023年全国高等教育自学考试高级语言程序设计一.doc
内容评分
5.0
1个用户评价
5星
100%
4星
0%
3星
0%
2星
0%
1星
0%
C语言
70,018
社区成员
243,266
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
积分榜
荣誉榜
原力榜
学习榜
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章
手机看
关注公众号
客服
返回
顶部