ldcf.net
当前位置:首页 >> C语言(A=3*5,A*4,A+5)什么意思?输出20 >>

C语言(A=3*5,A*4,A+5)什么意思?输出20

1 中 x = 20, a = 15; 2 中x = 60, a = 15

这个表达式时逗号表达式 c语言提供一种特殊的运算符,逗号运算符,优先级别最低,它将两个及其以上的式子联接起来,从左往右逐个计算表达式,整个表达式的值为最后一个表达式的值。 表达式的计算流程为 1、a=3*5 赋值表达式的结果为左值,也就是...

赋值运算符比逗号运算符优先级高 所以 a = 3 * 5 = 15 你的表达式相当于 int j,k; k = (j = (a = 3*5,a*4),a + 5); --即为二个逗号表达式 j = (a = 3*5,a*4) j = 15 * 4 = 60; k = j, a+5; k = 20; 也就是说你最后的整个表达式的值为20,但是 a ...

逗号表达式的值是最右边表达式的值 a=3*5 赋值给a=15 a*4 这个表达式的值被丢弃 a+5 是逗号表达式的返回值 15+5 =20 逗号表达式的值是20

(a=3*5,a*4).a+5 应该是 (a=3*5,a*4),a+5 吧 逗号表达式注意两个基本知识: 1. 逗号表达式的运算顺序是从左向右运算 2. 逗号表达式的值取逗号中最右表达式的值 现在看(a=3*5,a*4),a+5这个逗号表达式, 首先对于(a=3*5,a*4)和a+5来说,按照从左向...

先算a=3*5,a的值为15,然后算15*4,值为60(注意这步a的值不变),最后算15+5,值为20,作为整个逗号表达式的值。因此是20

由于第2个等号左边并非变量,而是个表达式,因此这个式子会被编译程序报错

结果是20.。。。。 因为a = 3*5 = 15, 然后a*4 = 60 a+5 = 20 如果改成(a=3*5,a=a*4),a+5 结果就是65了。。。 所以最后结果是20。。。。。逗号运算无论前面有多少。。。都取最后的那个值。。。 希望对你有帮助。。。。

先给a赋值为15 然后a*4得60 最后a+5得20 而整个逗号表达式的值永远是最后一个表达式的值,这里是a+5为20,所以返回20

网站首页 | 网站地图
All rights reserved Powered by www.ldcf.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com