首先我们定义一个变量i,int i=5;
然后我们做执行printf(“%d”,i++);
我们会发现输出结果是5。
是为什么呢,我们要搞清楚printf(“%d”,i++);
这句话是做两件事:
1.输出i
2.i=i+1;
这里的顺序,是先输出i,再执行i=i+1;
然后我们初始化变量i,i=5;
然后我们做执行printf(“%d”,++i);
我们会发现输出结果是6。
其实printf(“%d”,++i);做的也是这两件事,
1.输出i
2.i=i+1;
只是先做i=i+1;然后输出i;
总结:++i;i++;的区别:
i++先做别的事,再自己加1;
++i先自己加1,再做别的事情;
形象的理解,你可以把++i比作自私的人,首先考虑自己的事;
i++是无私的,先为别人照想,这样方便记忆。
也可以参照函数:i++
function () {
tmp = i;
i = tmp + 1;
return tmp;
}
++i为
function () {
i = i + 1;
return i;
}
总而言之,i++ 语句需要个临时变量,去存储返回自增前的值。
不要忽略这个变量的意义,了解过 C 等「低级」语言的朋友,可能会了解变量的内部机制。首先,申请(malloc)一段内存空间,然后将值塞(push,压栈)进去,最后不用了释放(free)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)