有效在C表达式中使用赋值运算符吗?

时间:2012-04-20 00:26:31

标签: c syntax

而不是

cardNumber = j+1;
deck[i][j] = cardNumber;
theDeck[k] = cardNumber;

只是说

是有效的
deck[i][j] = theDeck[k] = cardNumber;

同时将cardNumber分配给deck和theDeck吗?

3 个答案:

答案 0 :(得分:5)

是的,确实如此。赋值运算符返回一个值。

答案 1 :(得分:1)

是的,它是一个表达式,它的值是作业的右侧。请注意,这也来自=(从右到左)的关联性,这使得:

x = y = z

相当于:

x = (y = z)

但不是:

(x = y) = z /* wouldn't work */

所以你可以更进一步写下来:

theDeck[k] = deck[i][j] = cardNumber = j+1;

答案 2 :(得分:0)

是的;它是这样的:

deck[i][j] = (theDeck[k] = cardNumber);