#include <stdio.h>
void main()
{
int i = 3;
i = i++;
printf("i=%d\n",i);
}
写了一个c语言程序,但是运行后,i的值打印为3,没有进行变化,而且再java里面也是,这是为什么呢?
原因:
1,首先对表达是i++进行求值,结果为3
2,之后进行i++操作,此时i变为4
3,之后进行 赋值 也就是 ‘=’ 操作,因为i++的表达式值为3,所以赋值后 i 的值变为3,覆盖了4.
#include <stdio.h>
void main()
{
int i = 3;
i = i++;
printf("i=%d\n",i);
}
写了一个c语言程序,但是运行后,i的值打印为3,没有进行变化,而且再java里面也是,这是为什么呢?
原因:
1,首先对表达是i++进行求值,结果为3
2,之后进行i++操作,此时i变为4
3,之后进行 赋值 也就是 ‘=’ 操作,因为i++的表达式值为3,所以赋值后 i 的值变为3,覆盖了4.