把取地址操作(*)的结果赋给引用变量时,是否生成一个临时变量呢?
如:
typedef struct S {...};
... ...
S s;
S* s0=&s;
S& s1=*s0;
那么,编译器对最后这句赋值的实际实现, 是直接令s1 "指向 "s的地址, 还是使s按值拷贝为一个新的临时变量ts,再令s1成为对ts的引用呢? 若把s1作为参数传给某个函数, 它实际是按值传送还是按引用传送呢?
[解决办法]
指针可以理解成一个四字节的整形数
计算机中的内存都有地址编号, 也是四字节整形
指针赋值就是把内存变量的内存起始地址赋值给这个指针
此外别的啥都不干
[解决办法]
令s1 "指向 "s的地址
引用是变量的别名
[解决办法]
你打印一下他们各自的地址,不就知道了么?
[解决办法]
引用在实现本质上也是指针
[解决办法]
这一点上我也有疑问,希望老鸟继续讲解
[解决办法]
地址是一样的, 不产生临时变量