第二周项目1 C/C++语言中函数参数传递的三种方式
2015-09-07 18:55
495 查看
问题及代码
运行结果
传值
传址
引用作形参
知识点总结
我们可以看到第一种方法并没有将a与b的值交换,在第一种情况中交换的仅仅是myswap函数中x与y的值而已,而实际的a与b的值并没有交换。因此第一种传值的方法失败,第二种方法运用指针将a与b所指向的数值的地址交换了,是一种成功的交换。而第三种方法中,将实参a和b的地址传给了形参x和y,此时,两者其实是同一变量,只是多了一个别名,在myswap函数中将x和y的值互换后,a和b的值也同时改变了。
/* *Copyright (c) 2015,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:swap.cpp *作者:陈梦萍 *完成日期:2015年9月7日 *版本号:v1.0 * *问题描述:输入两个整数的值,交换他们的值并输出 *输入描述:两个整数 *程序输出:交换后的两个整数 */ #include<iostream> using namespace std; //传值 void myswap(int ,int ); int main() { int a,b; cout<<"请输入待交换的两个整数: "; cin>>a>>b; myswap(a,b); cout<<"调用交换函数后的结果是:"<<a<<" "<<b<<endl; return 0; } void myswap(int x,int y) { int t; t=x; x=y; y=t; } /* //传址 void myswap(int *,int *); int main() { int a,b; cout<<"请输入待交换的两个整数: "; cin>>a>>b; myswap(&a,&b); cout<<"调用交换函数后的结果是:"<<a<<" "<<b<<endl; return 0; } void myswap(int *p1,int *p2) { int t; t=*p1; *p1=*p2; *p2=t; } //引用作形参 void myswap(int &,int &); int main() { int a,b; cout<<"请输入待交换的两个整数: "; cin>>a>>b; myswap(a,b); cout<<"调用交换函数后的结果是:"<<a<<" "<<b<<endl; return 0; } void myswap(int &x,int &y) { int t; t=x; x=y; y=t; } */
运行结果
传值
传址
引用作形参
知识点总结
我们可以看到第一种方法并没有将a与b的值交换,在第一种情况中交换的仅仅是myswap函数中x与y的值而已,而实际的a与b的值并没有交换。因此第一种传值的方法失败,第二种方法运用指针将a与b所指向的数值的地址交换了,是一种成功的交换。而第三种方法中,将实参a和b的地址传给了形参x和y,此时,两者其实是同一变量,只是多了一个别名,在myswap函数中将x和y的值互换后,a和b的值也同时改变了。
相关文章推荐
- Java调用C++
- Java调用C++类库--JNI
- 对C++中字符串常量的理解
- c++题目——内存管理——待解决
- c语言实现希尔排序
- C C++ Intro - C语言中函数参数入栈的顺序
- 为多态基类声明一个虚析构函数(Effective C++_7)
- C语言基础测试题02
- 第二周项目:C/C++函数参数传递的三种方式
- 第二周项目:C/C++语言中函数参数传递的三种方式
- c++题目
- C++程序
- C语言基础测试题01
- C++类中初始化成员变量总结
- C语言指针强制类型转换
- C++——并发编程
- c/c++ 软件集成 安装和可卸载软件
- 第二周项目- C/C++语言中函数参数传递的三种方式
- 一个c++题目
- 第2周项目1C/C++语言中函数参数传递的三种方式