第二周项目1--C/C++语言中函数参数传递的三种方式
来源:互联网 发布:人人视频 mac客户端 编辑:程序博客网 时间:2024/05/16 17:56
问题及代码:
/* *Copyright(c) 2016,烟台大学计算机控制与工程学院 *All rights reserved. *文件名称:test.cpp *作者:刘倩 *完成日期:2016年9月4日 *版本号:v1.0 * *问题描述:函数参数传递的三种表示方式 *输入描述:输入带交换的两个整数 *程序输出:输出调用交换函数后的两个整数 */#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;}
运行结果:
原因分析:
形参交换,实参到形参是单向传递,函数调用后,形参被释放。
传地址:
#include<iostream>using namespace std;void myswap(int *p1,int *p2){int t;t=*p1;*p1=*p2;*p2=t;}int main(){ int a,b;cout<<"请输入带交换的两个整数:"<<endl;cin>>a>>b; myswap(&a,&b);cout<<"调用交换函数后的结果是:"<<a<<" "<<b<<endl;return 0;}
原因分析:实参向形参传递存储单元地址,改变形参指向的单元的值。
引用做形参:
#include<iostream> using namespace std; void myswap(int &x, int &y) { int t; t=x; x=y; y=t; } int main() { int a,b; cout<<"请输入待交换的两个整数:"<<endl; cin>>a>>b; myswap(a,b); cout<<"调用函数交换后的结果是:"<<a<<" "<<b<<endl; return 0; }
原因分析:实参和形参共用存储空间,形参交换实参也交换。
学习心得:
同一种方式不同方法,会得到不同的结果。
0 0
- 第二周项目1—C++/C语言中函数参数传递的三种方式
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- 第二周项目1-c/c++语言中函数参数传递的三种方式
- 第二周项目1 C/C++语言中函数参数传递的三种方式
- 第二周项目1 C/C++语言中函数参数传递的三种方式
- 第二周 项目1-C/C++语言中函数参数传递的三种方式
- 第二周 项目1 C/C++语言中函数参数传递的三种方式
- 第二周 项目1-C/C++语言中函数参数传递的三种方式
- 第二周项目1 - C/C++语言中函数参数传递的三种方式
- 第二周 项目1-C/C++语言中函数参数传递的三种方式
- 第二周项目1 c/c++语言中函数参数传递的三种方式
- 第二周项目1—C/C++语言中函数参数传递的三种方式
- 第二周 项目1 c/c++语言中函数参数传递的三种方式
- 第二周 项目1-C/C++语言中函数参数传递的三种方式
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- 第二周-项目1 - C/C++语言中函数参数传递的三种方式
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- 第二周 项目1-C/C++语言中函数参数传递的三种方式
- redis cluster 集群 安装 配置 详解
- 使用select函数循环读取键盘输入
- JAVA 集合
- 解决docker中/etc/default/docker配置DOCKER_OPTS 失效问题
- 硬币趣味题
- 第二周项目1--C/C++语言中函数参数传递的三种方式
- Leetcode3:Longest Substring Without Repeating Characters
- 模拟消息队列
- ElasticSearch知识点整理
- Sharping Up with Angularjs 1.x -Direactive
- Unity UI(九):UI布局之Layout Element、Content Size Fitter和Aspect Ratio Fitter
- 大数相加和大数相乘
- JAVA IO流
- redis cluster 添加 删除 重分配 节点