问一个简单的关于编程的语法问题
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 15:41:12
问一个简单的关于编程的语法问题
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.
希望我的回答能帮助到你.
就是先将a转换为long long类型,再乘以b在对n取模,最后再把这个结果转换为int类型.为什么最后执行int的强制转换,这就是我刚说的类型强制转换的圆括号优先级低于表达式的圆括号.
再,如果改为return (int)((long long) a*b+n);,关系依然不变,先强制转换a,再乘以b,在上n,最后转换为int.
希望我的回答能帮助到你.