Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C表达式中使用赋值运算符有效吗?_C_Syntax - Fatal编程技术网

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

在C表达式中使用赋值运算符有效吗?,c,syntax,C,Syntax,而不是 cardNumber = j+1; deck[i][j] = cardNumber; theDeck[k] = cardNumber; 仅仅说一句话有效吗 deck[i][j] = theDeck[k] = cardNumber; 要同时将卡片编号分配给卡片组和卡片组???是的,它是。赋值运算符返回一个值。是,它是。赋值运算符返回一个值。是的,它是一个表达式,其值位于赋值的右侧。请注意,这也来自=从右向左的关联性,这使得: x = y = z 相当于: x = (y = z) 但

而不是

cardNumber = j+1;
deck[i][j] = cardNumber;
theDeck[k] = cardNumber;
仅仅说一句话有效吗

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

要同时将卡片编号分配给卡片组和卡片组???

是的,它是。赋值运算符返回一个值。

是,它是。赋值运算符返回一个值。

是的,它是一个表达式,其值位于赋值的右侧。请注意,这也来自=从右向左的关联性,这使得:

x = y = z
相当于:

x = (y = z)
但不是:

(x = y) = z /* wouldn't work */
所以你可以更进一步写:

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

是的,它是一个表达式,其值位于赋值的右侧。请注意,这也来自=从右向左的关联性,这使得:

x = y = z
相当于:

x = (y = z)
但不是:

(x = y) = z /* wouldn't work */
所以你可以更进一步写:

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

是的;是这样的:

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

是的;是这样的:

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

当您尝试时,编译器会告诉您什么?是的-赋值表达式x=y的值是分配给XY的值。您可能会在某些编译器设置上收到编译器警告,不确定示例情况,但如果您在相关的if语句中赋值,则肯定会对gcc发出警告。您可以使用双参数解决if EXPRESSON情况:if status=func。。。转到出口;警告不是因为您做错了什么,而是因为它看起来像==是预期用途。当您尝试时,编译器会告诉您什么?是-赋值表达式x=y的值是分配给XY的值。您可能会在某些编译器设置上收到编译器警告,但不确定示例情况,但对于gcc,如果您在if语句中赋值,这是相关的。您可以使用双参数解决if EXPRESSON情况:if status=func。。。转到出口;警告并不是因为你做错了什么,而是因为它看起来像==是预期用途。或者,我怎么说:赋值运算符是一个表达式。也就是说,它将它与Python等其他语言中的赋值语句区分开来。C只允许所有人?语句上下文中的表达式。Python允许x=y=42,但不允许x=y=42,这表明它只是一个特殊的语句构造。也就是说,它将它与Python等其他语言中的赋值语句区分开来。C只允许所有人?语句上下文中的表达式。Python允许x=y=42,但不允许x=y=42,这表明它只是一个特殊的语句构造。这是否意味着可以使用括号来确定整行的优先级?@brianSan是的,它们可以。但它不是必需的,因为操作符的关联性已经做到了这一点。x=y=z=a与x=y=z=a完全相同这意味着可以使用括号来确定整行的优先级?@brianSan是的,它们可以。但它不是必需的,因为操作符的关联性已经做到了这一点。x=y=z=a与x=y=z=a完全相同