首页 > 其他 > 详细

为什么表达式 (a++) += (a++);错误,而 (++a) += (a++);正确

时间:2020-10-14 00:19:38      阅读:23      评论:0      收藏:0      [点我收藏+]

其实这是一个很深邃的问题.在c/c++中规定:左操作数必须是一个左值.
a++在c/c++中的实现是:
{
int tmp=a;
a=a+1;
return tmp;
}
这里的tmp为一个临时变量,是一个右值,对它赋值毫无意义.
++a在c/c++中的实现是:
{
a=a+1;
return a;
}
a为一个左值,可以赋值.
就效率而言++a应比a++的效率要高,因为a++要产生临时变量.

为什么表达式 (a++) += (a++);错误,而 (++a) += (a++);正确

原文:https://www.cnblogs.com/wangtianning1223/p/13812352.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!