题目
已知 int i = 6 , j = 8 ; 分别对下面表达式计算后求 i 和 j 的值 j + = j - = j * = j 分别求表达式的值, i 的值, j 的值
已知 int i = 6 , j = 8 ; 分别对下面表达式计算后求 i 和 j 的值
j + = j - = j * = j 分别求表达式的值, i 的值, j 的值
题目解答
答案
答案是:表达式的值为 0,i 的值仍为 6,j 的值为 0
在表达式 j += j -= j *= j 中,涉及到了多个赋值运算符,需要注意运算顺序和运算优先级。
根据 C/C++ 运算符的优先级,赋值运算符的优先级是最低的,因此应该先计算表达式中的其他运算符,最后再进行赋值运算。
具体的计算过程如下:
首先计算 j *= j,即 j = j * j = 8 * 8 = 64;
然后计算 j -= j,即 j = j - j = 64 - 64 = 0;
最后计算 j += 0,即 j = j + 0 = 0 + 0 = 0;
因此,表达式的值为 0,i 的值仍为 6,j 的值为 0。
解析
步骤 1:计算 j *= j
根据赋值运算符的优先级,首先计算 j *= j,即 j = j * j = 8 * 8 = 64。
步骤 2:计算 j -= j
接下来计算 j -= j,即 j = j - j = 64 - 64 = 0。
步骤 3:计算 j += 0
最后计算 j += 0,即 j = j + 0 = 0 + 0 = 0。
根据赋值运算符的优先级,首先计算 j *= j,即 j = j * j = 8 * 8 = 64。
步骤 2:计算 j -= j
接下来计算 j -= j,即 j = j - j = 64 - 64 = 0。
步骤 3:计算 j += 0
最后计算 j += 0,即 j = j + 0 = 0 + 0 = 0。