c语言指针函数互换问题 c语言指针互换什么原理

c语言用指针交换两个数?

在 huan(int *p1,int *p2)这个函数中,交换的只是两个指针的指向,但是函数的结束、返回,这两个指针本身就消失了(它们的值并不会传回到main()函数中)所以,最后的结果没有交换。

成都创新互联公司专业为企业提供广南网站建设、广南做网站、广南网站设计、广南网站制作等企业网站建设、网页设计与制作、广南企业网站模板建站服务,十余年广南做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

C语言.定义一个函数实现交换两个整数的功能,(用指针做函数参数)。

主函数里指针p指向变量a的地址,q指向变量b的地址,p=a,*q=b,这应该没问题吧。change函数的形参分别是取a的地址和b的地址,然后用第三个变量t来实现值交换。再打印就是互换后的值。

C语言指针交换问题

1、第一种当然没问题,问题是你写错一个地方,{int m,n,t;改成 {int m,n,*t;t要作为指针的交换变量,那t本身也得定义为指针类型。

2、void swap(int *x,int *y) x,y是地址 temp = *x; //temp的值是x地址指向的值 这么理解就明白了。int a;int *a2;a = 5;a2=a2 = 6;运行到这里a就是等于6,有没有明白呢。

3、解答: 注意形式参数和实际参数的区别,主函数中的x,y是实际参数,swap函数中的a,b是形式参数。他们各有自己的存储空间,互不干扰。

4、而你如果要在函数内部改变指针的值,你需要传入的是指针的地址,也就是指针的指针。将你的Change函数的参数改为(int **p, int **q), 然后再调用的时候改为change(&p, &q)即可。希望对你又帮助。

c语言中指针交换的问题

1、第一种当然没问题,问题是你写错一个地方,{int m,n,t;改成 {int m,n,*t;t要作为指针的交换变量,那t本身也得定义为指针类型。

2、解答: 注意形式参数和实际参数的区别,主函数中的x,y是实际参数,swap函数中的a,b是形式参数。他们各有自己的存储空间,互不干扰。

3、因为指针a b是指向指针p q的,所以写成a b的时候只是单纯的指向p q它们所在的地方,而不是指向 i j的地方,也就相当于指针p q换了个位置,使得a指向q也就指向j,b指向p也就指向i,但是i,j自己的值并没有变化。

4、第一题只是交换了行参,第二个是真的交换了了值。第一题传递了两个地址值过去,保存到这个函数作用欲范围内,在这个范围内做了交换,返回了一个地址值,就是指向5那个地址。

5、void swap(int *x,int *y) x,y是地址 temp = *x; //temp的值是x地址指向的值 这么理解就明白了。int a;int *a2;a = 5;a2=a2 = 6;运行到这里a就是等于6,有没有明白呢。

分享题目:c语言指针函数互换问题 c语言指针互换什么原理
分享URL:https://www.cdcxhl.com/article2/depisic.html

成都网站建设公司_创新互联,为您提供虚拟主机移动网站建设全网营销推广微信小程序网站排名品牌网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

营销型网站建设