b=b++ 赋值意外结果

b=b++ assignment unexpected result

这段文字代码是我写的

int b=5;
int main()
{
    b=b++;
    printf("b = %d\n",b);
    return 0;
}

我希望它打印“b = 6”;然而,结果是“b = 5”,即 b 没有递增。 我知道 b=b++ 不是一个好习惯,但只是为了理解它,谁能解释一下为什么它不增加 b 吗?我错过了什么?

b++表示使用后自增 所以对于你的情况应该是 ++b。 当 b 通过 b++ 递增到 6 时,当它为 5.

时,它会被 b 的赋值覆盖

随便写

int b=5;
int main()
{
    // b=b++;
    b++;
    // or ++b;
    printf("b = %d\n",b);
    return 0;
}