设有int a;int f=3;,则执行语句a=(f++)%3;后a的值是_______.
0。
f++中的++是后置的,所以表达式a=(f++)%3,是先取f的值,进行运算,然后再对f加1,所以a=3%3,a的值是0。
或
f++可以看作(temp=f,f++,temp)
(f++)%3就相当于temp%3;f++
So,a=0
扩展资料:
任务的优先级等级与相对截止期、空闲时间之间的层次关系可以用一种线性关系来描述,比如,di+ksj=g
其中,k为线性关系的斜率,g 可以看成是优先级等级。对于确定的斜率k,g 越小,优先级等级越高。比如,对于g1<g2,满足di+ksj=g1的任务优先级要高于满足di+ksj=g2的任务优先级。图中带箭头的斜向上直线表示一种不同等级的排序,越往左上,等级越高。
参考资料来源:百度百科-优先级
执行语句“a=(f++)%3;”后a的值为:0。
语句执行过程:由题意我们可以得到f的初始值为3,然后根据运算符的优先级,对表达式进行执行,首先先执行括号里的语句执行f++,先引用后加1,所以说括号里的引用的值为3。
再执行取余运算符的操作,3%3=0,然后进行赋值操作得到a=0。
扩展资料:
运算符的优先级:
括号处于运算符优先级的第1级:
优先级提升表达式是指圆括号包围的表达式,如“( expression )”
“++”后缀运算符和“--”后缀表达式 处于优先级的第2级,++”,后缀自增,“--”,后缀自减。
乘法表达式 5级,“ * ” 乘法运算符;“ / ”除法运算符;“ % ” 取余运算符。
在C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。
结合性,C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。
参考资料来源:百度百科-C语言运算符
2016-06-22
为什么不是先算圆括号里的自增呢
这个只能说是由编译器自己决定的,属于语法定义,是约定没有理由可言。
这里括号也不需要的。
f++可以看作(temp=f,f++,temp)
(f++)%3就相当于temp%3;f++
So,a=0