java逗号运算符,逗号表达式
概括:这道题是糜浪汹同学的课后数学练习题,主要是关于逗号表达式,指导⽼师为弘⽼师。c语⾔提供⼀种特殊的运算符,逗号运算符,优先级别最低,它将两个及其以上的式⼦联接起来,从左往右逐个计算表达式,整个表达式的值为最后⼀个表达式的值。如:(3+5,6+8)称为逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14,a=(a=3*5,a*4)的值是60,⽽(a=3*5,a*4)的值是60, a的值在逗号表达式⾥⼀直是15,最后被逗号表达式赋值为60,a的值最终为60。
题⽬:逗号表达式解:
逗号表达式,其求解过程先表达式1,后表达式2,整个表达式值是表达式2的值,如:(3+5,6+8)的值是14
a = 3*5;是把15赋值给a变量;
相当于(15*4,15+15)根据逗号表达式原则:所以该题的值应该是30.
举⼀反三
例1:
跪求C语⾔中逗号表达式(a=4*5,a*2),a+15的值是逗号表达式(a=4*5,a*2),a+15的值是____⼀点点解析,
思路提⽰:
逗号 表达式,按顺序⼀个⼀个执⾏,然后把最后⼀个语句,当做整个逗号表达式的最后结果,
先执⾏a=4*5=20,然后执⾏a*20=40当做整个表达式的结果,但这个结果并不赋给 a,因为没有赋值给a,所以a还是20,最后求 a+15的
值,=35
例2:
【逗号表达式a=2*6,a*3,a+5的值为⿇烦过程讲的清楚些,我只是个初学者,谢谢】[数学练习题]
思路提⽰:
逗号表达式 a=2*6,a*3,a+5 的值:
int a;
int s;
s = (a=2*6,a*3,a+5);
右边⼩括号⾥的是逗号表达式,它分成3个表达式:
(1)a=2*6,
(2)a*3,
(3)a+5
计算顺序是 (1) (2) (3); 算毕,把 (3) “最后⼀个表达式的结果” 作为 “逗号表达式 的 结果” 给出.
(1) 式,叫“赋值表达式” -- C 语⾔的叫法!算得 a=12
(2) 式,表达式 的 结果 是 a*3 ,a 的当前值 是 12 ,表达式 的 结果 是 36,a⾃⾝值 是 12没变
(3)式,表达式 的 结果 是 a+5,上⼀步说了,a⾃⾝值 是 12没变,所以这⾥ a+5 = 12 + 5 = 17
“最后⼀个表达式的结果” 作为 “逗号表达式 的 结果” 给出 ,最终给出 17
printf("%d ",s); 打印出 17.
例3:
【逗号表达式“(a=3*5,a*4),a+5”的值】
c语言中逗号表达式的用法思路提⽰:
如果a的值等于15,那么将a*4;如果不等,那么将a+5
例4:
【逗号表达式"a=5,a++,a*3"的值是?】
思路提⽰:
a=5
a++ => a=6
a*3=6*3=18
结果:18
例5:
逗号表达式,"(a=3*5,a*4),a+15"结果是多少?[数学练习题]
思路提⽰:
逗号的优先级⽐赋值运算符低,所以先运算a的值是15,再运算a*4,最后运算a+15,整个表达式的值是a+15,应该是30.
相关思考练习题:
题1:C++⾼⼿请进 逗号表达式(x = 4 * 5, x * 5), x + 2...
点拨:你是不是觉得X*5后X应该等于100啊 先把程序看清楚 你的表达式都没有赋值,我给⼀个相同格式的表达式吧(注意这⾥的ABCD代表的是表达式) D=((A,B),C)这⾥的D你没有给出,A就是你的x = 4 * 5,B就是你的x * 5,C就是你的 x + 25 记住,...
题2:C语⾔中逗号运算符怎么⽤?
点拨:2楼说的很详细了 ,逗号运算符的作⽤是将若⼲表达式连接起来。它的优先级别在所有运算符
中是最低的,结合⽅向是"⾃左⾄右"的。其值是最后⼀个表达式的,其间所有的都要计算,你所说的 a=12+(s+2,d+4); 先算s+2.的4,然后算d+4,最后逗号表达是式的值...
题3:java ⽀持"逗号表达式" ?
点拨:java⾥的逗号只有⼀个⽤处,分隔表达式,没有c/c++⾥返回列表最后⼀个逗号之后的值的作⽤ ⽐如分隔变量声明:int a = 1, b
=2; for⾥边对多个表达式求值:for( int i = 0; ; ++i, --j );
题4:在c语⾔的运算中,逗号表达式 a=3*5,a*4,a+5的值...
点拨:先算a=3*5,a的值为15,然后算15*4,值为60(注意这步a的值不变),最后算15+5,值为20,作为整个逗号表达式的值。因此是20
题5:C语⾔逗号表达式(a=3*5,a*4,a+5)的值是多少?
点拨:逗号表达式的值是最右边表达式的值 a=3*5 赋值给a=15 a*4 这个表达式的值被丢弃 a+5 是逗号表达式的返回值 15+5 =20 逗号表达式的值是20

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。