gpt4 book ai didi

c - (a += 3, 5, a) 中的操作数将如何处理或计算以打印 "a"的值?

转载 作者:太空狗 更新时间:2023-10-29 15:11:52 26 4
gpt4 key购买 nike

代码片段是:

int main()
{
int a = 1, b = 2, c = 3;
printf("%d", a += (a += 3, 5, a));
}

虽然它在终端中显示 8 作为输出。但我不明白它背后的概念。

最佳答案

表达式 a += (a += 3, 5, a) 将调用未定义的行为。

C 标准说

C11:6.5.16 赋值运算符(p3):

[...] The side effect of updating the stored value of the left operand is sequenced after the value computations of the left and right operands. The evaluations of the operands are unsequenced.

不保证最左边的a会在(a += 3, 5, a)求值之前或之后被求值。这将导致未定义的行为。

关于c - (a += 3, 5, a) 中的操作数将如何处理或计算以打印 "a"的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30627110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com