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;
}
这段文字代码是我写的
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;
}