📄 subject_42442.htm
字号:
<p>
序号:42442 发表者:软体狂人 发表日期:2003-06-03 12:44:06
<br>主题:再问有关引用的问题
<br>内容:我是一个C++初学者,以前对C语言比较熟悉。虽然我知道C++中的引用是变量的别名,但我还是未能掌握引用的本质,在如下例子中:<BR>int max(int& a,int& b){<BR> return a<b?b:a;<BR>}<BR>我就是想问:a和b是不是该函数的局部变量?在调用该函数时所建的栈空间中,a和b到底有没有被分别内存空间?如果有,内存空间是多大?其中存放的内容到底是什么?<BR>万望高手们给个详细的答案!<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:罗兹维尔 回复日期:2003-06-03 20:45:53
<br>内容:实际传递的是a,b的指针
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:外族胡人 回复日期:2003-06-03 20:48:43
<br>内容:引用是不占用内存空间的!只是变量的别名!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:*西北狼* 回复日期:2003-06-04 23:20:11
<br>内容:a,b是max()的形参,应该是函数的局部变量;但它是引用类型,所以不占内存空间。它的地址与实参的地址相同。可以理解为给实参起了个小名。如果a,b被修改,则实参也被修改。如:<BR>int max(int& a,int& b){<BR> a++;b++;<BR> return a<b?b:a;<BR>}<BR>void main()<BR>{<BR> int A=10;<BR> int B=16;<BR> max(A,B);<BR>}<BR>则最后A,B分别为11和17。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:乔毅 回复日期:2003-06-05 12:00:26
<br>内容:第2楼,第3楼,说得好。我在书上看到了,也是这样写的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhang2003 回复日期:2003-06-06 20:12:00
<br>内容:第三楼有上点错了<BR>a,b是max()的形参,应该是函数的局部变量;但它是引用类型,所以不占内存空间//错误应该是占用内存空间<BR>实际上a,b是两个指针
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:IceAge 回复日期:2003-06-06 20:36:05
<br>内容:max(int& a,int& b) 与 max(int* a,int* b)实质是一样的,a, b不是什么局部变量, 实际上,引用被暗地里作为指针使用。作为参数传递,当然占用内存空间。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -