关于自增运算符++
在谭浩强的书中有个地方提到 (++i)+(++i)+(++i) 的问题.
在VC6中测试,结果令人不解,特此求教.
#include "stdio.h"
void main(void)
{
int i, a;
i = 3;
a = (++i)+(++i)+(++i);
printf("\n%d\t%d\n", a, i); /* i为6,a为16?为什么a不是15? */
}
程序改成如下后,a为15.这又是为什么?
#include "stdio.h"
void main(void)
{
int i, a, l, m, n;
i = 3;
a = (l = ++i)+(m = ++i)+(n = ++i);
printf("\n%d\t%d\t%d\t%d\t%d\n", a, i, l, m, n);
/* a为15,i为6, l,m,n依次为4,5,6 */
}