C:符号x = y 意味着什么?

我试图将另一个作者的一段C代码重写为Python,我遇到了以下类型的符号:

x = y[a=b]; 

其中y是数组, ab是整数。 起初我认为这意味着:

 a = b; x = y[a]; 

但显然它没有。 谁能告诉我这个表达意味着什么? 如果这个问题是重复的,请原谅我,但很难用几个可搜索的关键字来总结这个问题,而且我找不到任何能回答我问题的问题。

我试图重写的代码的来源: 链接

编辑:

Python重写的代码不能正常工作(卡在循环中),所以我认为我误解了上面的语句。 但正如你们几位建议的那样,首先是正确的。 那我一定是别的……

 x = y[a=b]; 

 a = b; x = y[a]; 

是等价的。 表达式a=b具有赋值后左操作数的值。

http://msdn.microsoft.com/en-us/library/474dd6e2.aspx

我认为你其实是对的,这意味着:

 a = b; x = y[a]; 

a = b在将b分配给b后返回b 。 因此y[a=b]将返回y[b]但也将b分配给b

编辑

在你的评论中你说,“如果a = 1且b = 3,那么它解析为y [3],a = 3且b = 3”。

这正是上面的代码所做的:

在开始时, a等于1b等于3

 a = b; 

现在a包含3b仍然包含3

 x = y[a]; 

现在x已经被分配了y[3]的值, a仍然包含3b仍然包含3