使用指针交换两个变量的值

作者&投稿:牟范 (若有异议请与网页底部的电邮联系)

C语言中,为什么交换两个数后,都变成了同一个数?
你传的变量是地址,然后把指针变量t的地址指向x地址里的内容,结果当然错。改成这样。int* t;t = x;x = n;n = t;

解释下为什么C语言中用函数交换两个数的值只能用指针,而不能用这个方法...
并在函数中用来计算,在fun中给a和b赋值都是在操作这两个临时申请的变量,函数返回后,这两个变量被舍弃,函数调用也没有将这两个临时变量的值返回给main函数中调用使用的参数功能。所以,在函数中要操作调用者申请的变量,需要给出它们的指针,函数中用指针来找到这些变量的位置和内容。

5、使用C语言编写一个函数,用于交换两个变量的值(地址传递)。_百度...
不知道你要交换的两个变量类型,所以这里以整型数据交换为例,以下swap函数实现了交换两个整型变量值的功能:include <stdio.h>\/\/ 交换给定指针指向整型变量的值。\/\/ 参数:\/\/a -> 指向第一个变量的指针\/\/b -> 指向第二个变量的指针void swap(int* a, int * b);int main(int argc, int ...

C语言:我使用子函数将指针变量中的指针进行交换,但是为什么所指向的变量...
C语言中的任何函数形参都是值传递。所谓引用传递,不过是指针的值传递而已。你的函数做的工作只是交换函数中的两个临时变量a和b的值,结果不会影响到外部的实参pa和pb。如果想要交换两个指针的值,你的形参应该为两个二级指针。

交换两个数,不用第三块儿内存!请问怎么实现?
y = *x ^ *y;x = *x ^ *y;} int main() { int x = 10;int y = 20;swap(&x, &y);printf("x = %d, y = %d\\n", x, y);return 0;} 在上面的代码中,我们使用了指针来交换两个数的值。通过使用指针,我们可以直接在两个变量的内存地址上操作,而不需要使用第三块 ...

swap函数
swap函数是用于交换两个变量值的函数。详细解释:一、swap函数的基本作用 在编程中,swap函数主要用来交换两个变量的值。这是一个非常实用的功能,尤其在需要临时交换两个值以便进行某些计算或者操作时。二、swap函数的基本实现方式 swap函数通常通过临时变量或者指针来实现。以C++语言为例,可以通过以下代码...

交换两个数的四种方法
思路简介:建立一个临时变量,通过temp=a,a=b,b=temp来实现交换。 缺点:这只是一种假交换,由于这只是在函数内部临时变量间的交换,所以当函数退出,函数栈帧被释放,原本的值并没有交换。2.指针的方法:思路简介:取两个数的地址,在swap方法中再用指针指向地址交换,这时候为数值交换(函数...

C语言中swap的作用和用法
swap函数一般是一个程序员自定义函数。通常是实现两个变量数值的交换,用法比较广泛。可使用临时变量实现交换;可通过临时指针变量实现交换;可借助指针加入临时变量来实现交换。return 0;} swap1: x:4,y:3 swap2: x:4,y:3 swap3: x:3,y:4 swap4: x:4,y:3 swap5: x:3,y:4 swap6: x...

C语言中交换两个数为什么一定要用指针和调用函数?
我刚入门的时候也是这样想的,哈哈。但是随着你学的深入,你会知道指针才是c语言的灵魂。用函数交换变量,如果不用指针的话,是无法进行的,因为函数只能改变形参,而对于主函数的实参,是没有交换作用的(这里得好好想想,初学可能会糊涂的点就在这)指针的作用很多的,下面是我上课做的一些笔记,你...

c语言,两数是怎样互换顺序的
其实就是内存地址的内容互换了;p1 = &a1,就是取了a1在内存中的地址给p1,这个指针,那么p1就指向了a1的那块内存。同理p2指向a2的内存。然后*p1是取p1内存中的内容,也就是a1,赋值给a;然后把*p2把p2内存的内容给*p1指向的内存。然后把a的值给p2指向的内存,*p2 = a;完成值的互换。

仲贷17224483707问: "用指针法交换两个变量里的值"c语言及讲解 -
通化县利达回答: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17#include "stdio.h" voidswap(int* x,int* y); voidmain() {intx,y;scanf("%d%d",&x,&y);swap(&x,&y);//传递变量的地址printf("main:x = %d y = %d\n",x,y); } voidswap(int* x,int* y)//接收实参传递过来...

仲贷17224483707问: 用指针法实现交换两个变量的值,并在主函数中调用 -
通化县利达回答: 假设你使用的c语言 #include void swap(int* a,int* b)// a,b指针做形参 { int temp=*a;// 暂存指针a所指变量的值 *a=*b;// 指针b所指的值赋值给a所指变量 *b=temp;// 指针b所指变量的值变为原先a所指的值 } int main(void) { int a=10,b=20; swap(&a...

仲贷17224483707问: 怎样利用指针进行交换数据? -
通化县利达回答: 两个数交换应该有两种方法:一种是交换它们所指的地址,一种是交换它们的值.从你的int *t=a;看你把a的地址先保存,应该是想交换他们的地址达到交换两数的目的.但要改变指针所指向的地址需要用二级指针(自已可以仔细理解下),...

仲贷17224483707问: 编写一个程序,使用指针交换两个变量的值 -
通化县利达回答: 已通过测试,望采纳#include <stdio.h> void swap(int *a,int *b) //你要的函数 { int t; t=*a; *a=*b; *b=t; } void main() { int a,b; scanf("%d%d",&a,&b); printf("%5d%5d\n",a,b); swap(&a,&b); printf("%5d%5d\n",a,b); }

仲贷17224483707问: (C语言)用指针实现两个变量的交换.急急急,越简单越好. -
通化县利达回答: void swap(int a[]) { int temp; temp = a[0];a[0] = a[1]; a[1] = temp; } 你直接传一个数组名进去就行了,如:int a[2]; //两个变量 swap(a);//传地址

仲贷17224483707问: 怎么用指针法实现交换两个变量的值,并在主函数中调用? -
通化县利达回答: #include <stdio.h> void swap(int *p1,int *p2) { int t; t=*p1; *p1=*p2; *p2=t; //交换p1和p2所指向的内容 } void main() { int a,b; int *pointer_1, *pointer_2; printf("请输入两个数字:\n"); scanf("%d%d",&a,&b); pointer_1=&a; pointer_2=&b; swap(pointer_1,pointer_2); //函数调用,指针作为实参printf("\n%d,%d\n",a,b); }

仲贷17224483707问: C语言指针使用函数交换两个变量的值 -
通化县利达回答: 这个地方会出现不好理解的东西. 调用函数的时候,你放入了int a int b 但是这其实不是你的main函数中的a b只是相当于他们的副本,也就是复制了一个a 和b 传入函数 所以你改变的只是传入的副本 也就是复制的副本a b所以在main函数中打印的ab不会出现变化 依然是a=3,b=6 现在回答第二个问题,怎么会让ab的值变化:传入指针,也就是在main函数中使用a b的指针,然后吧指针传入到函数里面 这个时候ab就会真正的发生变化,因为指针指向的是ab的物理地址,也就是真正的ab,不是副本,这个时候就会改变ab的值.想要理解,可以去百度传值参数和引用参数.纯手打,望采纳

仲贷17224483707问: 编写一个C语言程序,使用指针交换两个数的值. -
通化县利达回答: #include "stdio.h" main() { int a,b; int *point_1,*point_2,*temp; a=10,b=20; point_1=&a; point_2=&b; printf("%d,%d\n",*point_1,*point_2); temp=point_1; point_1=point_2; point_2=temp; printf("%d,%d",*point_1,*point_2); getch(); }

仲贷17224483707问: 采用指针编一个程序实现两个变量内容的交换 -
通化县利达回答: #include<stdio.h> void swap(double *x,double *y) { double t; t=*x; *x=*y; *y=t; } main() { double A,B; printf("please Input two numbers:"); scanf("%lf,%lf",&A,&B); printf("A=%lf,B=%lf\n",A,B); swap(&A,&B); printf("A=%lf,B=%lf\n",A,B); }


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网