第二周,C/C++语言中函数参与传递的三种方式
来源:互联网 发布:手工客软件 编辑:程序博客网 时间:2024/06/05 22:50
问题及代码:
/**Copyright (c) 2015, 烟台大学计算机学院*All rights reserved;*文件名称:test.cpp*作 者:于东林*完成日期:2015 9月7日*版本号:v1.0*问题描述:编制三个程序,分别调用三个版本的交换函数,观察结果,展示程序及运行结果,解释成功交换以及交换不成功的原因。*输入描述:输入待交换的两个数*输出描述:输出交换完成后的两个数*/<pre class="csharp" name="code">#include <stdio.h>//(1)传值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)传地址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的合适形式 myswap(&a,&b); printf("调用交换函数后的结果是:%d 和 %d\n", a, b); return 0; } 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的合适形式myswap(&a,&b); printf("调用交换函数后的结果是:%d 和 %d\n", a, b); return 0;} //(3)引用作形参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; }
运行结果:
(1)传值
<img src="http://img.blog.csdn.net/20150911093541416?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
(2)传地址
<img src="http://img.blog.csdn.net/20150911093750362?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
(3)引用作形参
<img src="http://img.blog.csdn.net/20150911093750362?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
知识点总结:
在第一个程序中,传值不成功的原因是指在形参上改变了数值,没有在实参上改变数值
在第二个程序中,传地址成功的原因利用指针改变了原来的地址,所以实参就交换了
在第三个程序中,引用是直接改变两个实参变量a,b的值,所以就交换了
学习心得:
C语言的学习是十分严谨的一门学科,必须要严谨,谨慎求学,虚心求教,一步一步打好基础,不去造成一些低级失误。
0 0
- 第二周,C/C++语言中函数参与传递的三种方式
- 第二周项目1—C++/C语言中函数参数传递的三种方式
- 第二周项目一 C/C++语言中函数参数函数传递的三种方式
- 第二周 C/C++语言中函数参数函数传递的三种方式
- 第二周项目1-C/C++语言中函数参数传递的三种方式
- 第二周项目1-c/c++语言中函数参数传递的三种方式
- 第二周项目:C/C++语言中函数参数传递的三种方式
- 第二周--C/C++语言中函数参数传递的三种方式
- 第二周项目-c语言中函数参数传递的三种方式
- 第二周项目1 C/C++语言中函数参数传递的三种方式
- 第二周项目- C/C++语言中函数参数传递的三种方式
- 第二周项目1 C/C++语言中函数参数传递的三种方式
- 第二周项目—C/C++语言中函数参数传递的三种方式
- 第二周项目-c语言中函数参数传递的三种方式
- 第二周 项目1-C/C++语言中函数参数传递的三种方式
- 第二周 项目1 C/C++语言中函数参数传递的三种方式
- 第二周 项目1-C/C++语言中函数参数传递的三种方式
- 第二周项目1 - C/C++语言中函数参数传递的三种方式
- 第二周项目1
- Lua:Nginx Lua环境配置,使用openresty
- 给SQL Server字段加注释
- 原型模式-2
- ORACLE sid,pid,spid总结
- 第二周,C/C++语言中函数参与传递的三种方式
- c/c++语言中函数参数传递的三种方式
- Servlet完全教程
- jQuery实现星星评分样式
- Android Gradle基础
- linux下qt环境搭建
- ActionBar中的下拉菜单操作NAVIGATION_MODE_LIST
- iOS小结(三)animation blocks VS CALayer animation
- 第2周 项目1 - C/C++语言中函数参数传递的三种方式