小编Pau*_*mme的帖子

为什么unsigned int可能低于零?

我只是试图将unsigned int降低到0以下.令我惊讶的是它有效!

#include<stdio.h>

int main(void)
{
        unsigned int foo = 5;
        foo -= 10;
        printf("%d", foo);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

编译

clang -Weverything main.c
Run Code Online (Sandbox Code Playgroud)

这个计划回归

-5
Run Code Online (Sandbox Code Playgroud)

正如这篇文章和我的个人知识所述,这是不可能的.但为什么它会起作用呢?我错过了什么吗?是因为未定义的行为?还是printf?或者是其他东西?

c variables int unsigned

4
推荐指数
1
解决办法
374
查看次数

标签 统计

c ×1

int ×1

unsigned ×1

variables ×1