以下操作的结果是什么解释?
k += c += k += c;
Run Code Online (Sandbox Code Playgroud)
我试图理解以下代码的输出结果:
int k = 10;
int c = 30;
k += c += k += c;
//k=80 instead of 110
//c=70
Run Code Online (Sandbox Code Playgroud)
目前我正在努力理解为什么"k"的结果是80.为什么分配k = 40不起作用(实际上Visual Studio告诉我该值没有在其他地方使用)?
为什么k 80而不是110?
如果我将操作拆分为:
k+=c;
c+=k;
k+=c;
Run Code Online (Sandbox Code Playgroud)
结果是k = 110.
我试图通过CIL查看,但是我在解释生成的CIL方面并没有那么深刻,也无法得到一些细节:
// [11 13 - 11 24]
IL_0001: ldc.i4.s 10
IL_0003: stloc.0 // k
// [12 13 - 12 24]
IL_0004: ldc.i4.s 30
IL_0006: stloc.1 // c
// [13 13 - 13 30]
IL_0007: ldloc.0 // …
Run Code Online (Sandbox Code Playgroud)