使用以下C代码可以使整数变量达到值-1 -
main()
{
int n=0;
while(n++ != -1){
printf("\n%d",n);
}
}
Run Code Online (Sandbox Code Playgroud)
这有一个理论和实践部分:
理论上,将一个加到整数的最大值将导致未定义的行为.这可能是任何事情.粉红色的大象可能正在从天而降.
在实践中,即使对于编译器供应商来说,粉红色的大象也很难实现,如果你在一个最大的值范围内添加一个,它们中的大多数只会产生最小的值范围.这意味着max + 1将导致min.
这样,一旦你从0计数到最大值,加一个达到min并再次计数到-1,是的,经过一段时间后你的整数将变为-1.