我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:双彩网 > 置类型 >

内置类型及自定义类型自增的区别

归档日期:07-05       文本归类:置类型      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  我自己跟踪了一下,发现是运行顺序不同.对于i, 先 i=0+1 然后 i++,所以=2 ,而对于a 是 先a++了,返回出来的tmp 是个0, 然后 a= 0 + 1,结果就是个1了.原因我猜想是 ++ 操作在本质上是对应一条单独的汇编指令inc 的,c语言的语法里专门开出后置++,是允许你在一次汇编赋值(mov)语句之后,对某个地址进行一次inc操作,因为inc语句效率比汇编add快.这样带后置++的程序效率会稍高. 但是自从c++引入了操作符重载后,一切都乱掉了.通过操作符重载,你可以在代码里任意篡改各种运算过程.这时后置++操作就演化成一种特殊的写法.一般c++在后置++里都会返回出一个自己的副本.然后自己的值+1,而这步操作.确实是发生在 返回的那个副本 和 1相加的操作之前.所以运算顺序就完全不同了.

本文链接:http://kathala.net/zhileixing/349.html