c++/c语言: if(i++==0)和 if(++i==1) 一样吗? 是否与编译器有关? 怎么知道编译器是怎么压栈的?

在多线程环境中有区别吗?
我知道先自加在使用。。啪啦啪啦
我是说执行结果会因为编译器的不同而出现不同的结果吗
尤其是在多线程环境中,一旦此线程被中断,再回来执行时结果会不会错误,因为i的值可能被压栈了啊。。。

不一样,与编译器无关。
另外,正常人不应该这样写代码。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-30
i++是先使用变量再自增加一,而++ i 是先自增再使用变量,与编译器无关,这是C语言里面的一种连字符,所以问题 if(i++==0)和 if(++i==0) 两者是不一样的
第2个回答  2011-03-30
i++先比较后自加1
++i先自加1后比较
第3个回答  2011-03-30
一样的
相似回答