首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

把取地址操作(*)的结果赋给引用变量时,是否生成一个临时变量呢?该怎么处理

2012-03-28 
把取地址操作(*)的结果赋给引用变量时,是否生成一个临时变量呢?如:typedefstructS{...}......SsS*s0&s

把取地址操作(*)的结果赋给引用变量时,是否生成一个临时变量呢?
如:
typedef   struct   S   {...};
...   ...

S   s;
S*   s0=&s;
S&   s1=*s0;
那么,编译器对最后这句赋值的实际实现,   是直接令s1 "指向 "s的地址,   还是使s按值拷贝为一个新的临时变量ts,再令s1成为对ts的引用呢?         若把s1作为参数传给某个函数,   它实际是按值传送还是按引用传送呢?

[解决办法]
指针可以理解成一个四字节的整形数
计算机中的内存都有地址编号, 也是四字节整形
指针赋值就是把内存变量的内存起始地址赋值给这个指针
此外别的啥都不干
[解决办法]
令s1 "指向 "s的地址

引用是变量的别名
[解决办法]
你打印一下他们各自的地址,不就知道了么?
[解决办法]
引用在实现本质上也是指针

[解决办法]
这一点上我也有疑问,希望老鸟继续讲解
[解决办法]
地址是一样的, 不产生临时变量

热点排行