题目如下
# include <stdio.h>
int main(void)
{
int a;
int b;
int c;
int d;
a = 10;
b = a++;
c = ++a;
// d = 10 * ++a;
d = 10 * a++;
printf("%d, %d, %d, %d", a, b, c, d);
return 0;
}
编译后的结果是13, 10, 12, 120
此处有两个重点
a++
和++a
等价于a = a + 1;
b = a++;
是先将a的值赋给a再自增类似于b = a; a = a + 1;
,c = ++a;
是将a先自增再赋给c,类似于a = a + 1; c = a;