/*
*文件名称:cpp.cpp
*作者 :王超
*完成日期:2015.9.7
*问题描述:C/C++语言中函数参数传递的三种方式*/
#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;
}
#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;
}
#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分别占两个空间,当调用想,x y的时候,又给x y分配了两个空间,然后a 的值传递给了x,b的值传递给了y,当我们借用t交换了x y的值但是只是交换形式参数的值,最后输出的还是原本的a b的值,所以交换失败。第二种调用&a&b ,x作为一个指针指向a,x=2,y作为一个指针指向b,y=3,随后t=x所指向的值,t=2,x=y所指向的值,x=3,最后y=t的值=3,所以交换成功。最后一种,用到引用数据类型,a=2,b=3,同样的xy跟ab占用同样的空间,所以交换xy的值就是交换了ab的值。
学习心得:
综合运用几个知识点,灵活运用