a++和++a有什么区别
14个回答
展开全部
a++:a先创建自身的一个副本,然后a自增1,最后返回副本的值。
例子:
a=3;
b=a++;
运行后
b=3,a=4
++a:将a自增1并返回a。
a=3;
b=++a;
运行后
b=4,a=4
效率问题:
1.在内建数据类型时(即自增表示式的结果没有被使用,只是简单的用于递增操作),这时这两个表达式的效率是相同的。
2.在自定义数据类型时(主要指有类的情况),由于++a可以返回对象的引用,而a++一定要是返回对象的值(因为局部对象不能返回引用)。可想而知引用的开销当然比直接对对象进行操作要效率高很多,节省很多开销。
扩展资料
前置++和后置++存在本质上的区别:
前置++ 不会产生临时对象
后置++ 在返回时有一个临时对象的创建
在前置++和后置++ 效果相同的时候,最好使用前置++
展开全部
a++是先办事(进行相关运行),后给钱(然后再将a加1)
++a是先给钱(先给a加1),后办事(然后参与运算)
关于更详细的分析,大家可以参考我所写的百度经验。里面基于反汇编的代码,分析了两者的差别,相信你看过后会明白的。
jingyan.baidu.com/article/9f63fb919997f3c8400f0efb.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-07-10
展开全部
1 a++是先引用,后加;++a是先加,后引用。
2 a++当常量看待,++a当变量看待。
2 a++当常量看待,++a当变量看待。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一种情况:
a=3;
b=a++;
运行后
b=3,a=4
第二种情况:
a=3;
b=++a;
运行后
b=4,a=4
a=3;
b=a++;
运行后
b=3,a=4
第二种情况:
a=3;
b=++a;
运行后
b=4,a=4
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a++是先运算再执行加1,++a是先加1再运算
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询