gpt4 book ai didi

c - C 代码中的后增量给出了意想不到的答案

转载 作者:行者123 更新时间:2023-11-30 20:57:17 25 4
gpt4 key购买 nike

Possible Duplicate:
Could anyone explain these undefined behaviors (i = i++ + ++i , i = i++, etc…)

请解释以下输出的原因。

#include <stdio.h>

int main()
{
int i = 0, j = 0;
int val1 = 0;
int val2 = 0;

val1 = i+++i+++i++ ;
val2 = ++j+++j+++j ;

printf("value = %d\n", val1);
printf("value = %d\n", val2);
return 0;
}

输出:

value = 0  
value = 7

最佳答案

您在没有插入序列点的情况下多次修改同一变量,这是未定义的行为
未定义的行为仅仅意味着程序的行为可能有也可能没有任何可行的解释。

好读:
Undefined behavior and sequence points

关于c - C 代码中的后增量给出了意想不到的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10139892/

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