问题描述:
一道简单的C语言计算
设int x=3.4,y=1.8,a=8,计算表达式x+a%3*(int)(x+y)%2/5 的值.
400 000.
但是我的理解是在int x,y,a后,则x=3,y=1,a=8.且(int)类型表示符的优先级最高,所以先计算(int)(x+y)=4.
那么是不可能出现一个0.4的小数部分的,应该是3.000 000.
这到底是为什么呢?应该是很简单的.呵呵!
设int x=3.4,y=1.8,a=8,计算表达式x+a%3*(int)(x+y)%2/5 的值.
400 000.
但是我的理解是在int x,y,a后,则x=3,y=1,a=8.且(int)类型表示符的优先级最高,所以先计算(int)(x+y)=4.
那么是不可能出现一个0.4的小数部分的,应该是3.000 000.
这到底是为什么呢?应该是很简单的.呵呵!
问题解答:
我来补答展开全文阅读