趣味小知识:return i++"/>
趣味小知识:return i++
昨夜偶打代码,忽然想到个小问题:
如果在函数中,返回语句出现 return value++;会是怎样返回呢?
会不会是与 return i; i++; 相同呢?还是i++; return i; 呢?
为了探究这个问题,我打了个小代码以试试看:
- #include <iostream>
- using namespace std;
- int i = 100;
- int foo() {
- return i++;
- }
- int main(){
- cout << foo() << endl ; // 输出100
- cout << i << endl ; // 输出101
- }
也即返回 i 的值是在 i 自增之前,但这又说不通,因为函数返回值之后便退出函数,不应该执行其
后的操作,所以既不是(先return i; 再 i++; ),也不是(先 i++; 再return i; ),这时候唯一有可能的
解释便是引入中间值的概念,即是 中间值 = i++; 再return 中间值,这便可满足返回值数值大小与 i 完
成自增加操作的解释,由汇编代码也可验证此结论!!(在此就不做加深拓展,有兴趣可自行探索)
更多推荐
趣味小知识:return i++
发布评论