C++中的按引用和按值传参数问题
问题描述
今天朋友问我关于C++对象中的this的问题,大概的代码就是
return *this = *this + n;
我没系统学过C++,也很是困惑,主要有以下几点:
- *this + n 是哪一个优先级高
- 为什么要用传引用
*this + n 哪个的优先级高
这个问题比较好解决,这里很明显是吧this加上了n个对象的长度,得到了的地址。相似的,在*p + n; *p++; 都是先加地址。
为什么要用传引用
我们都知道按引用传参数,是把传入的参数的内存空间完全复制给了参数,这样参数就有了和调用函数之前的变量一样的地址,一样的空间,只是名字不一样。那么传值之后,取这个值得地址是不是也行呢?于是我写了一下两个程序做了实验:
#include <iostream>
int reference(int &num);
int main(