【发布时间】:2020-04-03 00:00:43
【问题描述】:
我不明白为什么最后 a 等于 1 而 b 等于 0。在我看来,它们应该是相同的。提前致谢。
#include "stdio.h"
int main()
{
int a=0;
int b=0;
a++;
printf("a=%d,b=%d",a,b++);
return 0;
}
【问题讨论】:
-
你知道“post-increment”中的“post”代表什么吗?
-
你了解
b++(即post增量)的作用吗? -
您使用了后自增运算符。所以'b'在增量发生之前被评估。要实现 a == 1 && b == 1,请使用前置自增运算符 (++b)。
-
去掉
a++;,把printf("a=%d,b=%d",a,b++);改成printf("a=%d,b=%d",++a,b++);,结果还是一样的。
标签: c printf operators post-increment