阿杰 发表于 2008-12-20 08:05:15

【开源】交换变量值--函数参数传递之地址传递举例

<p><font face="Verdana">#include &lt;iostream.h&gt;<br/>void Swap(int *a, int *b); //函数原型的声明,将形参a,b说明成指针<br/>int main(int argc, char* argv[])<br/>{<br/>&nbsp;int x=8,y=10;<br/>&nbsp;cout&lt;&lt;"x="&lt;&lt;x&lt;&lt;"&nbsp;&nbsp;&nbsp; y="&lt;&lt;y&lt;&lt;endl;&nbsp; //输出调用函数前x和y的值<br/>&nbsp;Swap(&amp;x,&amp;y);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //调用函数Swap <br/>&nbsp;cout&lt;&lt;"x="&lt;&lt;x&lt;&lt;"&nbsp;&nbsp;&nbsp; y="&lt;&lt;y&lt;&lt;endl;&nbsp; //输出调用函数后x和y的值<br/>&nbsp;cin&gt;&gt;x;<br/>&nbsp;return 0;<br/>}<br/>void Swap(int *a,int *b)&nbsp; //交换两个数的函数<br/>{&nbsp;int t;<br/>&nbsp;t=*a;<br/>&nbsp;*a=*b;<br/>&nbsp;*b=t;<br/>}</font></p>
<p>&nbsp;</p>
<p>//分解说明</p>
<p>//指针类型的指针变量a,b存有各指向单元的地址值,将指针交换赋值步骤为: <br/><br/>//①将t=a (让t具有a的指针值); <br/><br/>//②将a=b (让a具有b的指针值); <br/><br/>//③将b=c (让b具有c的指针值); <br/></p>
[此贴子已经被作者于2008-12-20 8:43:53编辑过]

阿杰 发表于 2008-12-20 08:32:31

<p><font face="Verdana">//如果将swap 函数放在main()函数前面,刚不用声明函数,放在main()函数后面必须声明</font></p>
<p>//</p>
<p><font face="Verdana">void swap(int *a,int *b)&nbsp; //交换两个数的函数<br/>{ int t;<br/>&nbsp;t=*a;<br/>&nbsp;*a=*b;<br/>&nbsp;*b=t;<br/>}</font></p>
<p><font face="Verdana">void main()<br/>{<br/>&nbsp;int a=3,b=4;<br/>&nbsp;printf("%d,%d\n",a,b);<br/>&nbsp;swap(&amp;a,&amp;b);<br/>&nbsp;printf("%d,%d\n",a,b);<br/>} </font></p>
页: [1]
查看完整版本: 【开源】交换变量值--函数参数传递之地址传递举例