C++中的传值调用、传址调用、和引用调用 10
解释一下什么意思?有什么区别?越详细越好!谢谢啦例1#include<iostream>usingnamespacestd;voidswap(int&a,int&b){i...
解释一下什么意思?有什么区别?越详细越好!谢谢啦
例1#include <iostream>using namespace std;void swap(int &a,int &b){ int c; cout<<"swap函数中,交换前,a:"<<a<<"\tb:"<<b<<endl; c=a; a=b; b=c; cout<<"swap函数中,交换后,a:"<<a<<"\tb:"<<b<<endl;}int main(){ int a=3,b=4; cout<<"main函数中,交换前,a:"<<a<<"\tb:"<<b<<endl; swap(a,b); cout<<"main函数中,交换后,a:"<<a<<"\tb:"<<b<<endl; return 0;}
例2#include <iostream>using namespace std;void swap(int *a,int *b){ int c; cout<<"swap函数中,交换前,a:"<<*a<<"\tb:"<<*b<<endl; c=*a; *a=*b; *b=c; cout<<"swap函数中,交换后,a:"<<*a<<"\tb:"<<*b<<endl;}int main(){ int a=3,b=4; cout<<"main函数中,交换前,a:"<<a<<"\tb:"<<b<<endl; swap(&a,&b); cout<<"main函数中,交换后,a:"<<a<<"\tb:"<<b<<endl; return 0;}
例3#include <iostream>using namespace std;void swap(int *a,int *b){ int c; cout<<"swap函数中,交换前,a:"<<*a<<"\tb:"<<*b<<endl; c=*a; *a=*b; *b=c; cout<<"swap函数中,交换后,a:"<<*a<<"\tb:"<<*b<<endl;}int main(){ int a=3,b=4; cout<<"main函数中,交换前,a:"<<a<<"\tb:"<<b<<endl; swap(a,b); cout<<"main函数中,交换后,a:"<<a<<"\tb:"<<b<<endl; return 0;} 展开
例1#include <iostream>using namespace std;void swap(int &a,int &b){ int c; cout<<"swap函数中,交换前,a:"<<a<<"\tb:"<<b<<endl; c=a; a=b; b=c; cout<<"swap函数中,交换后,a:"<<a<<"\tb:"<<b<<endl;}int main(){ int a=3,b=4; cout<<"main函数中,交换前,a:"<<a<<"\tb:"<<b<<endl; swap(a,b); cout<<"main函数中,交换后,a:"<<a<<"\tb:"<<b<<endl; return 0;}
例2#include <iostream>using namespace std;void swap(int *a,int *b){ int c; cout<<"swap函数中,交换前,a:"<<*a<<"\tb:"<<*b<<endl; c=*a; *a=*b; *b=c; cout<<"swap函数中,交换后,a:"<<*a<<"\tb:"<<*b<<endl;}int main(){ int a=3,b=4; cout<<"main函数中,交换前,a:"<<a<<"\tb:"<<b<<endl; swap(&a,&b); cout<<"main函数中,交换后,a:"<<a<<"\tb:"<<b<<endl; return 0;}
例3#include <iostream>using namespace std;void swap(int *a,int *b){ int c; cout<<"swap函数中,交换前,a:"<<*a<<"\tb:"<<*b<<endl; c=*a; *a=*b; *b=c; cout<<"swap函数中,交换后,a:"<<*a<<"\tb:"<<*b<<endl;}int main(){ int a=3,b=4; cout<<"main函数中,交换前,a:"<<a<<"\tb:"<<b<<endl; swap(a,b); cout<<"main函数中,交换后,a:"<<a<<"\tb:"<<b<<endl; return 0;} 展开
2个回答
2012-06-23
展开全部
建议找本书好好看看并上机认真调试 多想想为什么 这很重要 你在这里问别人给你回答还不如自己去图书馆借书或者和同学讨论 那样效果最大了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
传值调用 只把 变量的值 传入函数,在函数中修改后,在主函数中值还是不变,相当于函数只是复制了变量的副本,不会改变原来的值。
传址调用 把变量在内存中的地址 传给函数(有地址信息可以轻易得出给地址上的值),这样在函数中修改地址上的值,会使主函数中的值也跟着改变,因为改变的是该地址上的值,而主函数也是通过地址访问的。所以更改之后,主函数的值跟着变。
引用调用,也能改变主函数的的值,其做法也是获得该变量所在内存中的地址。
传址调用 把变量在内存中的地址 传给函数(有地址信息可以轻易得出给地址上的值),这样在函数中修改地址上的值,会使主函数中的值也跟着改变,因为改变的是该地址上的值,而主函数也是通过地址访问的。所以更改之后,主函数的值跟着变。
引用调用,也能改变主函数的的值,其做法也是获得该变量所在内存中的地址。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询