gpt4 book ai didi

c - 一元运算有时是自杀性的。弄乱 C 代码

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

C语言代码。

#include<stdio.h>
#define PRODUCT(x) ( x * x * x)
int main()
{
int i =5,k;
k = PRODUCT( ++i );
printf("i is :%d ",k);
return 0;
}

我的问题是为什么 i是:392 ?根据我的说法,输出应该是 336 。 (因为6 * 7 * 8 = 336)

我真的搞砸了吗?

最佳答案

预处理后的代码会有

(++i *++i *++i)

缺少 sequence point在同一变量上的两次执行之间产生 Undefined behaviour .

关于c - 一元运算有时是自杀性的。弄乱 C 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18511479/

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