++i; i++

一、++i 和 i++ 的区别:

1. i++返回的是i的值, ++i返回的是i+1的值;

2. i++不能用作左值, ++i 可以用作左值。

 

二、左右值的根本区别是什么?

答:左右值的根本区别是: 是否允许用取地址运算符&获取相应的内存地址。

 

三、 i++ 和++i的实现

1. ++i 实现:

int& int::operator++()

{

*this +=1;

return *this;

}

 

2. i++ 实现:

const int int::operator(int)

{

int oldValue = *this;

++(*this);

return oldValue;

}

 

从效率上来看, ++i 效率高于 i++

原文链接:https://blog.csdn.net/qnavy123/article/details/79482999

posted @ 2022-07-01 09:35  aaa111js  阅读(36)  评论(0编辑  收藏  举报