从 int main 返回“-1”在控制台中显示 "return value 4294967295" 为什么?

Returning "-1" from int main shows "return value 4294967295" in the console why?

我正在使用 Windows-11、64 位和 Dev-C++ (Bloodshed v5.11);以下是简单的代码片段:-

#include<stdio.h>

int main()
{
    return -1;
}

我在控制台中得到以下输出:-


Process exited after 0.2015 seconds with return value 4294967295 Press any key to continue . . .

在输出中,我确实认识到 4294967295 (2^32 - 1) 是无符号 4 字节整数的最大值,但我不明白为什么返回该值而不是“-1”。

-1 以二进制补码有符号数格式(假设 4 字节长整数)是 0xffffffff,这是可以存储在 4 字节中的最大无符号值。现在几乎所有使用的计算机都使用二进制补码格式(包括您的 PC,Mac 和任何移动设备 phone)

您的 shell 将程序 return 值显示为 无符号整数 0xffffffff 十六进制数的十进制表示为 4294967295