您的位置:首页 > 编程语言 > C语言/C++

第二周-项目1 - C/C++语言中函数参数传递的三种方式

2015-10-05 17:26 330 查看
//(1)传值
#include<stdio.h>
using namespace std;
void myswap(int x, int y)
{
int t;
t=x;
x=y;
y=t;
}

int main()
{
int a, b;
printf("请输入待交换的两个整数:");
scanf("%d %d", &a, &b);
myswap(a, b);  //分三个程序,分别写上调用myswap的合适形式
printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
return 0;
}






 

//(2)传地址
#include<stdio.h>
void myswap(int *p1, int *p2)
{
int  t;
t=*p1;
*p1=*p2;
*p2=t;
}
int main()
{
int a, b;
printf("请输入待交换的两个整数:");
scanf("%d %d", &a, &b);
myswap(&a, &b);  //分三个程序,分别写上调用myswap的合适形式
printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
return 0;
}




//(3)引用作形参


#include<stdio.h>
void myswap(int &x, int &y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int a, b;
printf("请输入待交换的两个整数:");
scanf("%d %d", &a, &b);
myswap(a, b);  //分三个程序,分别写上调用myswap的合适形式
printf("调用交换函数后的结果是:%d 和 %d\n", a, b);
return 0;
}




 知识点总结:

        第一种方法明显是行不通的,因为这种方法仅仅在调用的子函数中交换了两个数的位置,而子函数中的值没有返回到主函数中去,把值传递给参数的两个变量a和b没有改变。

        第二种方法是可行的,利用指针,改变的是指定地址上的那个变量的值,不管这个值叫什么名字,只要地址没错就会有效。

        第三种方法也是可行的,引用只是给这个变量另外起了一个名字,两个变量本就是一个值,就像一个大名一个小名,两个名下值的变动自然是相同的。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: