i++不能通过,++i通过了,查了一下:i++是先用临时对象保存原来的对象,然后对原对象自增,再返回临时对象,不能作为左值;++i是直接对于原对象进行自增,然后返回原对象的引用,可以作为左值。 由于要生成临时对象,i++需要调用两次拷贝构造函数与析构函数(将原对象赋给临时对象一次,临时对象以值传递方式返回一次); ++i由于不用生成临时变量,且以引用方式返回,故没有构造与析构的开销,效率更高。
点赞

相关推荐

2025-12-29 22:34
武汉大学 Java
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务