/*
* Copyright(c) 2015,烟台大学计控学院
* All rights reserved.
* 文件名称 :1.cpp
* 作 者 :朱绍懿
* 完成时间 :2015年 9月11日
* 版 本 号 :v1.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;
}
#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;
}
程序1运行结果:
程序2运行结果:
程序3运行结果:
知识点总结:
1.1交换的值为形参x,y的值,仅仅将值交换成了5,16,没有交换a,b的值。
1.2使用指针p1指向了a,用指针p2指向了b,完成myswap函数后a,b的值自然是交换的。
1.3是令x与a,y与b共同使用一个地址的,所以完成myswap函数后值自动交换。
学习心得:
通过对C语言中函数参数传递值的三种方式,复习了传地址和引用作形参的内容,同时对之前为学习到的C与C++的不同做了一定的了解和加强。