前两天看到一个问题:
#include <stdio.h>
int main(void)
{
int i = 0, j = 0;
for (; i < 10; i++) {
j = (j++);
}
printf("j %d\n", j);
return 0;
}
运行
输出j
的值竟然是0。
才想通这个问题,其实很见到,
j = j++
,
就相当于
tmp = j++,
j = tmp;
j
的值虽然自增了,但是之后又被之前的值覆盖掉了,所以j
的值没有变化。
输出的结果自然是0了。