m=(k+=i*=k);到底怎么理解!
时间: 2024-04-02 19:36:55 浏览: 121
这一行代码可以拆分成以下几步:
1. 执行 i *= k,即 i = i * k。此时,i的值变为4,k的值仍为2。
2. 执行 k += i,即 k = k + i。此时,k的值变为6(即2 + 4)。
3. 执行 m = k * i,即将k乘以i的积赋值给m。此时,k的值为6,i的值为4,所以m的值为24(即6 * 4)。
因此,m的值最终为24,k的值为6,i的值为4。可以理解为,代码先执行了 i *= k,然后将结果赋值给 k,最后将 k 和 i 的积赋值给 m。
相关问题
m=(k+=i*=k);
这行代码的含义是:先将k乘以它本身的值,然后将i乘以这个新的k值,最后将这个新的k乘以i的积赋值给m。具体的执行过程如下:
1. k = k + i
首先执行k += i,等价于k = k + i。因为k和i的值分别为6和4,所以执行完这行代码后,k的值变为10(即6 + 4)。
2. i = k * i
接着执行i *= k,等价于i = i * k。因为k的值为10,i的值为4,所以执行完这行代码后,i的值变为40(即4 * 10)。
3. m = k * i
最后执行m = k * i,即将k乘以i的积赋值给m。因为k和i的值分别为10和40,所以执行完这行代码后,m的值为400(即10 * 40)。
最终,k的值为10,i的值为40,m的值为400。
m=(k+=i*=k);怎么理解
这是一个复合赋值表达式,其中包含了三个运算符:+=、*= 和 =。这个表达式的执行顺序是从右到左的,首先会执行 i *= k,即将 i 乘以 k 的值,然后将结果赋值给 i。接着会执行 k += i*k,即将 i*k 的值加到 k 上,然后将结果赋值给 k。最后将 m 赋值为 k+=i*k 的结果。这个表达式等价于以下代码:
```c
i = i * k;
k = k + i * k;
m = k;
```
值得注意的是,这个表达式会改变 i 和 k 的值,并且含有多个运算符,容易引起混淆,因此在实际编程中应该尽量避免使用这种复杂的表达式。