如果int i=3;k=(i++)+(++i)+(i++);执行过后k的值为()i的值为()
int i=3;k=(i++)+(++i)+(i++);执行过后k的值为,i的值为。
i++意思是i先加后面的数再自加。++i是先自加后计算。因为 i=3,所以,从左至右根据优先级,第一个(i++)为(3++)=3,而i=4;到第二个(++i)时,为(++4)=5,而i=5;到第三个(i++)为(5++)=5,而i=6。总的来看k=(i++)+(++i)+(i++)=3+5+5=13。i=6。
扩展资料:
在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。
优先级从上到下依次递减,最上面具有最高的优先级,括号操作符具有最高的优先级。表达式的结合次序取决于表达式中各种运算符的优先级。优先级高的运算符先结合,优先级低的运算符后结合,同一行中的运算符的优先级相同。
k=12 i=6
作为单独的语句:i++和++i;没有区别,都是自增1,相当于 i=i+1;这里所要考虑到运算优先级从左至右,即先计算(i++)+(++i)即3+4=7,然后7在与i++计算,此时的i经过两次自增i=5,所以表达式i++为5,所以,即K=3+4+5=12,I经过3次自增即i=3+1+1+1=6。
扩展资料:
在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的结合顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。
优先级从上到下依次递减,最上面具有最高的优先级,括号操作符具有最高的优先级。
k=3+4+5中的5是怎么来的