同样,一个愚蠢的问题。
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int i = 0;
i = i++;
cout<<i;
return 0;
}
我得到1
打印了作为该程序的结果是,虽然我预期0:首先创建eing等于0的临时对象,则i递增,然后临时对象返回并分配至i。 只是根据:
5.2.6递增和递减[expr.post.incr] 1通过施加后缀++所获得的值是操作数施加操作之前的值。 [注意:得到的值是原始值的副本]
我检查下MS VC 2008和GCC。 他们给这两个相同的结果,但至少gcc的问题增量串警告。 我在哪里错了?