gpt4 book ai didi

c - 为什么如果我输入 5,这个程序会打印 25 而不是 27?

转载 作者:行者123 更新时间:2023-11-30 21:15:26 24 4
gpt4 key购买 nike

int main(void)
{

int i;
scanf( "%d", &i );
i = i++ * i++ ;
printf( "%d", i );
getchar();
getchar();
return 0;

}

为什么这个程序打印 25而不是27如果我输入5

最佳答案

i = i++ * i++ ;

是未定义的行为,因此可以做任何它想做的事,例如返回25,返回27,返回30(这可能比27更有意义),格式化你的硬盘,甚至 mock 你。

:-)

C 标准(C99 和 C11,可能更早,尽管我没有检查过)具有称为序列点的东西,并且不允许在没有插入序列点(其中乘法)的情况下两次更改同一变量符号 * 不是一个)。

您可以在标准的这两个迭代的附录 C 中查看哪些被视为序列点。

关于c - 为什么如果我输入 5,这个程序会打印 25 而不是 27?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29328304/

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