问一个简单的关于编程的语法问题return (int)((long long) a*b%n);就是这个,我想问的是 long long 的对象是谁,是a?还是a*b?还是a*b%n?

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/26 00:26:09
问一个简单的关于编程的语法问题return(int)((longlong)a*b%n);就是这个,我想问的是longlong的对象是谁,是a?还是a*b?还是a*b%n?问一个简单的关于编程的语法问题

问一个简单的关于编程的语法问题return (int)((long long) a*b%n);就是这个,我想问的是 long long 的对象是谁,是a?还是a*b?还是a*b%n?
问一个简单的关于编程的语法问题
return (int)((long long) a*b%n);
就是这个,我想问的是 long long 的对象是谁,是a?还是a*b?还是a*b%n?

问一个简单的关于编程的语法问题return (int)((long long) a*b%n);就是这个,我想问的是 long long 的对象是谁,是a?还是a*b?还是a*b%n?
(long long)的圆括号代表类型的强制转换,在你的式子里它的优先级仅低于(),所以long long作用于变量a.
就是先将a转换为long long类型,再乘以b在对n取模,最后再把这个结果转换为int类型.为什么最后执行int的强制转换,这就是我刚说的类型强制转换的圆括号优先级低于表达式的圆括号.
再,如果改为return (int)((long long) a*b+n);,关系依然不变,先强制转换a,再乘以b,在上n,最后转换为int.
希望我的回答能帮助到你.