
设a=10,b=4,c=5,d=1,x=2.5 y=3.5
设a=10,b=4,c=5,d=1,x=2.5y=3.5请问,a+b,18+(b=4)*3,(a/b,a%b)为什么是4中间的2个逗号怎么算的?还有x+a%3*(int)...
设a=10,b=4,c=5,d=1,x=2.5 y=3.5
请问,a+b,18+(b=4)*3,(a/b,a%b)为什么是4 中间的2个逗号怎么算的?
还有 x+a%3*(int)(x+y)%2/4+sizeo(int)为什么是4.50000
求详细解释 展开
请问,a+b,18+(b=4)*3,(a/b,a%b)为什么是4 中间的2个逗号怎么算的?
还有 x+a%3*(int)(x+y)%2/4+sizeo(int)为什么是4.50000
求详细解释 展开
1个回答
展开全部
a+b,18+(b=4)*3,(a/b,a%b)是一个逗号表达式,最后一个表达式的值为该表达式的值,这里自然是(a/b,a%b),而它又是一个逗号表达式,继续后面的,即a%b=10%4=2,结果应该是2,不是4
2. x+a%3*(int)(x+y)%2/4+sizeof(int)
x=2.5,a%3*(int)(x+y)%2/4=0,sizeof(int)是计算机中整数所占字节数,以前的计算机中大多以16位来算,所以=2,而现在大多数计算机都是32位或者64位,所以结果为4或者8,按照计算机的不同,结果可能为4.5 ,6.5或者10.5,未必就一定是你这里说的4.5,自己可以编程测试看。
追问
a%3*(int)(x+y)%2/4=0为什么,顺序怎么算的
追答
a%3*(int)(x+y)%2/4=0
顺序从左到右,括号优先
a%3*(int)(x+y)%2/4=10%3*(int)(2.5+3.5)%2/4=1*6%2/4=6%2/4=0/4=0
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询