在C++中,为何前自增操做生成左值,后自增操做生成右值?为何有这样的区别? .

左值意味着这个值是内存里一个可访问的地址,右值表示一个数据(可能没有确切的地址) 好比说 ++i 先将 i 所存放的数加一,再返回i,即&(++i)是有意义的,能够做为一个左值, 而 i++ 将 i的值加一,而且返回没有增长前的i,(i++先保存i原来的 值 ,再将i的值加一, 而后返回未加一以前的 值)这个时候这个(i++)是一个数字,没有固定的存放地址,因此只能做为右值了. 因此: (a++)
相关文章
相关标签/搜索