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

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

2016-09-06 18:07 239 查看
问题及代码:

代码1:

/*
* Copyright (C) 2016, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称 : bigice.cpp
* 作    者 : 何大冰
* 完成日期 : 2016年9月6日
* 版 本 号 : v1.0
* 问题描述 :变量交换
* 输入描述 :3 5
* 程序输出 :3 5
*/
#include <iostream>
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);
printf("调用交换函数后的结果是:%d和%d\n",a,b);
return 0;
}

代码2:

/*
* Copyright (C) 2016, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称 : bigice.cpp
* 作 者 : 何大冰
* 完成日期 : 2016年9月6日
* 版 本 号 : v1.0
* 问题描述 :变量交换第二代
* 输入描述 :3 5
* 程序输出 :5 3
*/
#include <iostream>
using namespace std;
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);
printf("调用交换函数后的结果是:%d和%d\n",a,b);
return 0;
}

代码3:

/*
* Copyright (C) 2016, 烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名称 : bigice.cpp
* 作 者 : 何大冰
* 完成日期 : 2016年9月6日
* 版 本 号 : v1.0
* 问题描述 :变量交换第三代
* 输入描述 :3 5
* 程序输出 :5 3
*/
#include <iostream>
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);
printf("调用交换函数后的结果是:%d和%d\n",a,b);
return 0;
}


运行结果:代码1交换失败:



代码2交换成功:



代码3交换成功:



知识点总结:

代码1:主函数定义了,a,b两个变量,申请了两块内存,然后调用myswap函数时,myswap函数也申请了两块内存,x,y变量,这几块内存是相互独立的,a,b变量只将值传给x,y,而函数执行结束,x,y的生存期结束,a,b仍为原来的值



代码2:



代码3:



学习心得:

再一次复习了基本知识,回忆起了当初学指针时的情景
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: