int i=5 ;printf(\"%d\

这个是undefined behavior.你在同一个语句中有两个可能改变i的地方,而且这两个地方根据standard没有确定的顺序,所以compiler可以产生任何结果。换句话说你的程序本身是非法的,任何结果都是可能的。gcc可能给你的结果是6,换个编译器可能就是5或者7。原理和i=i++一样
■网友
%d,%d 看看
■网友
C语言初探 之 printf压栈顺序
■网友
a = ++ib = i++print b
■网友
。。。。。


    推荐阅读