2007
12-19

void main()
{
int i=8;
printf(“%d\n%d\n%d\n%d\n”,++i,–i,i++,i–);
}

  如按照从右至左的顺序求值。例5.2的运行结果应为:

  8
  7
  7
  8

  如对printf语句中的++i,–i,i++,i–从左至右求值,结果应为:

  9
  8
  8
  9
这个我不明白,哪个高手给说下,我有的Microsoft Visual C++ 9.00的编译器结果为:8 8 8 8


请教》有 2 条评论

  1. 独孤傲天 说:

    这和编译器有关系,有个压栈和队列的区别,这要看是什么编译器了,不过那不重要。重要的是编出好的程序。到实际中哪个能出来用哪个不就得了。

  2. baly_bao 说:

    printf()是按照从右到左的顺序求值输出的,

    因此,

    8

    7

    7

    8

    是正确的。

留下一个回复