首页 > 解决方案 > 增量运算符的行为

问题描述

为什么

int a, b = 10;
b = b++;
printf ("%d", b);

输出 10

尽管

int a, b = 10;
a = b++;
printf ("%d", b);

输出 11

这是如何运作的?为什么'b'在第一种情况下不增加?

标签: c

解决方案


b++ 使用未递增的值执行赋值,而 ++b 将使用递增的值进行赋值。你只需要b++;在您的代码中没有分配增量。正如有人还指出的那样 b = b++; 和 b = ++b; 不是好的代码段,您受编译器的支配。


推荐阅读