hyqd.net
当前位置:首页 >> voiD F(int *x,int *y) { int *t; t=x; x=y; y=t; } 请... >>

voiD F(int *x,int *y) { int *t; t=x; x=y; y=t; } 请...

void f(int& x,int& y) {int t; t=x;x=y;y=t; }

比如f3(a,b),你把a的地址给了x,把b的地址给了y,然后x和y互换,也就是存a和b的地址互换了一下,但是a和b的值没变,实际上这没有意义.

第一个程序: 先看主函数,先调用swap函数把a和b掉换,输出4,3. 再执行下面的printf函数,输出主函数中定义的ab值,3,4.第二个程序:i++,先使用i,再执行加一操作,所以形参m=4,执行m+=k,m还是4. k+=m,k也是4,输出k后,k执行自增操作. 回到主函数,i自增后变成5,k自增后也是5,结果输出5,5.

整形参数是采用值传递的方式,要想在函数内改变参数的值,必须用指针.如 void f(int *x, int *y); 调用时采用 f(&a,&b);

实现不了什么功能吧…你在电脑上用用就能看出来了啊,这是个地址交换,最后换出来的只是xy指针交换了,原变量值没有换啊,最好还是用值传递吧int t;t=*x;x=*y;*y=t;反正我只确定这种可以交换值

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.hyqd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com