Вот мой простой код...
#include<stdio.h>
int main()
{
int i=5;
printf("%d %d %d %d %d ",i++,i--,++i,--i,i);
return 0;
}
В gcc он выводит как «4 5 5 5 5».
но на TC он выдает как «4 5 5 4 5»
что я знаю, что в операторе printf оценка будет слева направо, если это одно выражение, но в обычном операторе оно будет слева направо.
но если printf содержит несколько выражений, то оценка будет в стеке, элементы будут помещены в стек слева направо, но выскочат справа налево, и это оправдывает вывод TC
Поправьте меня, где я не прав???
++
. - person Keith Thompson   schedule 30.12.2011