printf 中的a++,++a

int a = 1;
printf("%d,%d,%d,%d,%d,%d\n", ++a, a++, ++a, a++, ++a, a++);

遇到上述问题不要慌,结合表格,按照以下3个步骤解决即可。

  1. 右往左计算结果,在下面表格中将结果写下来。
  2. 后++(后--)的将原本的值保存到副本里,然后将计算的结果写下来, 其他的没有副本,只有真值。
  3. 输出结果时:把副本中的X替换成最终的真值,逆序输出
输出项(逆序 a++ ++a a++ ++a a++ ++a
真值 2 3 4 5 6 7
副本 1 X 3 X 5 X

把副本中的X替换成最终真值7,逆序输出副本:7, 5, 7, 3, 7, 1

这就是最终的结果了。你学fei了吗?

以下是第二个例题,尝试用上述步骤解决:

int a = 1;
printf("%d,%d,%d,%d,%d,%d\n", --a, a, --a, a--, a, a--);

结果是 : -3,-3,-3,0,-3,1

你可能感兴趣的:(C/C++,c语言)