近日在教学过程中,遇到了一个比较有意思的代码:
int main()
{
int i = 0;
i = i++;
//问如果打印i的值,结果是多少?
return 0;
}
这个问题实际上涉及到了前置及后置操作符的内部实现问题。关于深入语言的底层汇编实现机制,大师兄的另一篇博客已经探讨过了,这里不再赘述,有兴趣的小伙伴可以移步:http://blog.csdn.net/shouhouxinling/article/details/52776646
下面我们通过模仿前置和后置操作符的实现方式,来加深对前置、后置操作符实现原理的理解:
首先,我们使用类MyInt来模拟整型:
class MyInt{
public:
int value; //实际的value值
MyInt(int value){
//方便初始化:MyInt i = 0;
this->value = value