强制类型转换
(int)((double)5/2)=(int)(2.5) (int)((double)(5/2) =(int)((double)(2)这两个强制类型转换具体过程到底是什么?
括号优先级最高,所以先执行的是5/2,在c语言中,除法符号/ 的两边的操作数如果都是整形,那么它们的商也必须是整形,所以虽然5除以2等于2.5但是会被强制转换为整形,也就变成了整形2了 (double)(5/2)=(double)2
再加2.5是4.5,强制转换为整形4
表达式(int)((double)(5/2)+2.5)的值是 __【6】__ 。 A. 2 B. 3 C. 4 D. 5
答案:C
解析:(int)((double)(5/2)+2.5) =(int)((double)(2)+2.5) =(int)(2+2.5) =(int)(4.5) =4,因此答案是4。