解释下为什么C语言中用函数交换两个数的值只能用指针,而不能用这个方法。。还有如果用全局变量该怎么写 C语言中如何交换两个指针变量的的值

作者&投稿:双柏 (若有异议请与网页底部的电邮联系)
因为在函数中的参数,并不是调用者的变量,而是临时申请的变量a和b存放main函数中变量a和b的值,并在函数中用来计算,在fun中给a和b赋值都是在操作这两个临时申请的变量,函数返回后,这两个变量被舍弃,函数调用也没有将这两个临时变量的值返回给main函数中调用使用的参数功能。
所以,在函数中要操作调用者申请的变量,需要给出它们的指针,函数中用指针来找到这些变量的位置和内容。

~

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

C语言关于调用函数交换2数的问题,请问为什么用了指针才能交换?
答:的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。指针传递:可以改变指针指向内容的值,但是不能改变指针本身,无需复制开销。你 百度一下 ,值传递,指针传递,可以看到更多的内容。

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

c语言交换两个数的问题???
答:第二段代码:将a、b两个数的地址传入swap()函数,此函数内部将这两个地址彼此做了交换(即两个指针所指的地址发生了互换,但相应地址下的数并没有变化)。因为对于函数swap()来说,传入的两个地址是值传递形式的,在其内部是局部作用域下的两个变量,完成这两个地址“值”的交换,并不能对调用时...

C语言中swap函数是什么意思?
答:C语言中swap函数是自定义的函数,C标准库里没有swap函数。swap函数是用来交换的函数,经常在C语言中排序中会用到。代码示例:include<stdio.h> void swap(int *a, int *b){ int t;t = *a;a = *b;b = t;} int main(){ int a=23,b = 43;printf("输入的两个要交换的数为:%d,...

c语言中用函数交换两个变量的值?
答:c语言中用函数交换两个变量的值方法是先将变量赋值给中间变量,然后中间变量再赋值给另外一个变量,程序如下:include "Stdio.h"include "Conio.h"void swap(int x,int y){ int t,m;t=x; //变量x赋值给中间变量t m=y; //变量y赋值给中间变量m x=m; //中间变量m赋值给变量x,...

c语言的题。要求函数的功能是交换x与y的值,……请讲下原因,谢谢
答:A错:y值没变;B错:传的不是指针,x和y都不变;C错:和A一样,y不变;D正确:传的是指针,通过x和y的地址交换它们的值。

C语言的指针在函数里面把变量a和b的值交换后为什么能传回main函数?
答:打个比方,假设 a 的地址为 2000,b 的地址为 2100。。然后将 2000 和 2100 作为参数传入函数。。星号是取值符号。。*p1,也就是地址为 2000 的内存所存储的值。。temp=*p1;p1=*p2;p2=temp;这个交换,就是把地址为 2000 和 2100 的内存所存储的值进行交换。。这样一来,a 和 b 的值也就...

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语言的灵魂。用函数交换变量,如果不用指针的话,是无法进行的,因为函数只能改变形参,而对于主函数的实参,是没有交换作用的(这里得好好想想,初学可能会糊涂的点就在这)指针的作用很多的,下面是我上课做的一些笔记,你...