使用Visual C++语言 编写一个函数完成两数交换,并用主函数调用它。(引用传递)

使用Visual C++语言 编写一个函数完成两数交换,并用主函数调用它。(引用传递)( 在Visual Stadio 2005环境下)请提供详细完整代码,谢谢。

第1个回答  2008-11-11
#include<stdio.h>
void f(int *x, int *y){
int *t;
*t=*x;*x=*y;*y=*t;
}
main()
{

int a,b;
scanf("%d%d",&a,&b);
f(&a,&b);
printf("%d %d\n",a,b);

}本回答被提问者采纳
第2个回答  2008-11-11
首先Visual C++不是语言,是一个开发工具。
代码如下,使用模板,并且不使用中间变量交换

template<class T1, class T2>
void exchange(T1& t1, T2& t2)
{
t1 = t1 + t2;
t2 = t1 - t2;
t1 = t1 - t2;
}
主函数中直接调用就行了,数据类型什么都可以,因为用了模板
第3个回答  2008-11-11
#include <iostream>
using namespace std;

template <class T>
void swap(T& a, T& b)
{
T c;
c = a;a = b;b = c;
}

int main()
{
double a;
double b;
cin >> a;
cin >> b;
swap(a,b);
cout << "After swap():\n" << a << endl << b;
return 0;
}

C++习题:输入两整数交换后输出
首先要说明一点的是 一个函数的形式参数也是这个函数的局部变量 按你写的那种方式,传递参数只是把值赋给这个两个局部变量 所以说你这个函数 只是将这个函数的两个局部变量的颠倒了一下 作为实参的变量x y 站在一边看热闹 跟他们一点关系都没有 从全局来看呢就是这样的 a=x,b=y t=a;a=b;b=t...

编写函数swapstruct(),实现交换两个结构体变量。编写主函数验证其功能是...
由于不知道结构体的类型,所以要用C++的模板来写咯 template <typename Ty> void swapstruct(Ty& sA, Ty& sB){ Ty temp = sA;sA = sB;sB = sA;}

C++函数的传值调用,将两个数交换
答:比如一个函数定义为void func(a); 那我们可以这样调用 void func(b)对吧?实际上函数在堆栈上创建了一个临时的变量a 在函数入口处实际上相当与执行了 a=b;这样一条f赋值语句,因为创建了临时变量 所以这也是为什么你一开始两个数没有交换的原因 因为他们交换的是临时变量 函数结束后变量就没有...

【C语言】交换函数(swap)
在C语言中,理解函数参数传递的原理是关键。首先,我们通过一个名为"swap"的函数来探讨。这个函数最初版本的问题在于,尽管它接收两个整数x和y,但由于是按值传递,实际操作的是副本,而非原始变量,因此在main函数中调用后,x和y的值并未交换。按值传递意味着函数处理的是实参的副本,改变副本不会影...

C++中使用指针、引用进行参数传递
1、常规情况 函数参数传递是所谓的“值传递”。啥意思,就是传的只是值,而不是变量自己以身相许。上面的例子来说,main中的ab传递给函数的ab发生了什么呢,是main中的ab把值传递给了函数的ab,这是四个变量!!!main的ab和swap的ab不是一码事!!!当swap通过传值得到a5b10后,在swap中会互换...

c++中和java中的交换变量的函数(swap)(值传递和址传递)
c++中交换变量函数swap的原理是基于值传递。直接交换两个变量a和b在swap函数中无效,因为形式参数a和b在swap中创建了对main函数中a和b的副本,而不是直接操作原来的变量。在swap函数内对a和b的操作只影响副本,不会影响main函数中的a和b。此操作类似于在身份证复印件上进行修改,身份证原件未受影响。

c语言中交换两个数据,为什么数组是地址传递捏
回答:如果是不是传地址,那会在函数中重新定义两个变量分别等于两个参数的值,对新定义的两个变量进行操作。和原来的两个变量无关。 如果是传地址,那就是把两个数的地址传到函数中,对两个地址中的内容进行操作。所以会改变两个数的值。 一般如果要通过函数来改变参数的值,C都是要用传地址的,C++还...

函数的功能是交换变量x和y中的值,并且通过正确调用返回交换的结果。能...
要求一个颠倒x,y的函数,就是说把x,y输入到函数中,函数能把他们颠倒。第二个函数的参数中没有x和y的指针,所以根本不可能获得x,y的地址,自然也就不可能颠倒x,y,而且大括号里的x,y也没有变量声明,只会报错而已。

c++ 看这段代码 swap()函数所要实现的功能
swap()实现传给函数的两个参数的交换。这里swap()没有返回值,它之所以能实现值的交换,是因为参数是引用类型的。对形参的操作也影响了实际参数的值,所以a,b交换能被保存下来。如果是这样的函数void swap(int n1,int n2)那么只是在调用函数时交换了n1和n2的值,但当调用结束后,a,b的值并没发生...

C++调用函数时的两种传递方式“传值方式调用”和“引用方式调用”有何...
引用与否有以下两个重要区别:1.引用效率比非引用高.考虑关于string类型的某函数some(string &x);这个是引用,函数内部直接使用x本身进行操作,而如果是非引用,函数内部生成一个临时的string,这个临时的string 和x 一样.然后对临时的string进行操作.显然,生成一个小的string 不需要花太多时间,但是当string...

相似回答
大家正在搜