a++为什么不能做左值_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > a++为什么不能做左值

a++为什么不能做左值

 2013/11/28 0:34:17  狼牙_  程序员俱乐部  我要评论(0)
  • 摘要:b=a++相当于b=a,a=a+1b=++a相当于a=a+1,b=a为什么a++不能做左值a++返回的是自身的值副本,所以不能作为左值intint::operator++(int){intoldvalue=*this;++*this;returnoldvalue;}++a返回的是a加1后自身的引用int&int::operator++(){*this=*this+1;return*this;}
  • 标签:

b = a++ 相当于 b = a, a = a + 1

b = ++ a 相当于a = a +1, b = a

为什么a++不能做左值

a++返回的是自身的值副本,所以不能作为左值

int int::operator++(int)

{

???int oldvalue = *this;

???++*this;

???return oldvalue;

}

++a 返回的是a加1后自身的引用

int& int::operator ++()

{ ?

? ? *this = *this+1;

? ? ?return *this;

}

class="speechFragmentSeparator">?

上一篇: 工作在民营企业5年的日子里 下一篇: 没有下一篇了!
  • 相关文章
发表评论
用户名: 匿名