gpt4 book ai didi

c - 故意分配大于 INT_MAX 的 `i` 值时出现奇怪的行为

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

当我分配i时值大于INT_MAX在此代码中 -

#include <stdio.h>
#include <limits.h>

int main()
{

int i;
i=INT_MAX+3;

printf("%d \n",INT_MAX); //INT_MAX = 2147483647

if(i>INT_MAX)
{
printf("OVERFLOW");
}
else
{
printf("%d",i);
}
return 0;
}

所以在此为 i=INT_MAX+3;那么条件为真且 overflow应该打印,但它打印一些 negative value 。这是未定义的行为吗?

最佳答案

  1. 是的,有符号整数溢出在 C 中具有未定义的行为。

  2. i > INT_MAX 对于任何 int i 来说都不是真的。如何使 int 大于可能的最大 int

关于c - 故意分配大于 INT_MAX 的 `i` 值时出现奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31627074/

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