gpt4 book ai didi

c - C 中后置和前置增量运算符的奇怪行为

转载 作者:行者123 更新时间:2023-11-30 18:44:28 25 4
gpt4 key购买 nike

当我这样做时 -

int i = 4;
printf("\n %d", ++i + ++i);

我得到的答案是 12。但是当我这样做时 -

int i = 4;
int a,b,s;
a = ++i;
b= ++i;
s = a+b;
printf("%d", s);

我得到的答案是 11。为什么?

我已经尝试了这两个代码。

预期值为 11,但为什么在第一个代码中却得到 12?

最佳答案

这段代码

int i = 4;
printf("\n %d", ++i + ++i);

具有未定义的行为,因为表达式 ++i 的计算之间没有序列点。

这段代码

int i = 4;
int a,b,s;
a = ++i;
b= ++i;
s = a+b;
printf("%d", s);

格式良好。变量a在递增后获取i的值。因此它的值等于5。同时i也等于5

在此声明之后

b= ++i;

bi 等于 6。因此,ab 之和等于 11

关于c - C 中后置和前置增量运算符的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58015076/

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