C语言用指针法交换两个数的顺序问题

交换两个数的顺序,可以交换地址,可以交换值。当用函数调用法交换地址的时候,为什么不可以实现。程序如下:#include<stdio.h>//这是用一个主函数就交换的方法。... 交换两个数的顺序,可以交换地址,可以交换值。当用函数调用法交换地址的时候,为什么不可以实现。程序如下:
#include<stdio.h>//这是用一个主函数就交换的方法。
main()
{
int a,b,*x,*y,*t;
scanf("%d %d",&a,&b);
x=&a;y=&b;
{t=x;x=y;y=t;}
printf("%d %d\n",*x,*y);
}

#include<stdio.h>//这是用函数调用的方法,为什么这个方法为什么就不能实现。
main()
{
int swap(int *a,int *b);
int a,b,*x,*y;
scanf("%d %d",&a,&b);
x=&a;y=&b;
swap(x,y);
printf("%d %d\n",*x,*y);
}
int swap(int *a,int *b)
{
int *t;
{t=a;a=b;b=t;}
}
展开
 我来答
l7722526
2019-01-16 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3705万
展开全部
int swap(int *a,int *b)//a与b分别复制主函数x与y的值,即a与x的指向相同,b与y的指向相同 { int *t; {t=a;a=b;b=t;}//通过交换,a和y的指向相同,b与x的指向相同,但是,x与y没有改变原来指向,这样函数swap结束,a与b消失,输出结果不变 } 换成 int t; {t=*a;*a=*b;*b=t;}//将改变x和y指向的地址的值,达到交换目的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qzhao_1
2019-01-15 · TA获得超过2.4万个赞
知道大有可为答主
回答量:2.4万
采纳率:76%
帮助的人:4338万
展开全部
你试一试看如下的程序是否能够正常交换两个整数的数值
void main( )
{
void swap(int *a, int *b) ; /* 函数原型说明 */
int a, b ;
scanf( "%d %d",&a,&b ) ;

printf("Before swap: %d %d\n",a, b ) ;

swap( &x, &y ) ; /* 调用交换两个整数的子函数,实参为指向整型的指针 */

printf("After swap: %d %d\n", a, b ) ;

}
void swap( int * a, int * b ) /* 交换两个整数的子函数,形参为指向整型的指针 */

{
int * t ; /* 定义一个临时指针变量 *t,以下三行用于进行两个整数的交换 */
( *t ) = (* a) ;

( *a ) = (* b) ;
(* b ) = (* t) ;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcy990718
2019-01-16 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1.2万
采纳率:66%
帮助的人:1505万
展开全部

因为你的函数传递的是指针,在函数中指针中的内容修改可以返回到调用函数,但对指针的修改却不能返回到调用函数,你可以使用int **a或者 int * &pa;

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
三天打鱼N
2019-01-15 · TA获得超过1540个赞
知道大有可为答主
回答量:2032
采纳率:74%
帮助的人:590万
展开全部

交换指针指向的变量值

交换两个指针

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乞得王孙红豆9128
2012-04-03 · TA获得超过6.2万个赞
知道大有可为答主
回答量:3.4万
采纳率:0%
帮助的人:4943万
展开全部
#include<stdio.h>
main()
{
void swap(int *a,int *b);//无返回值时类型为void;
int a,b,*x,*y;
scanf("%d %d",&a,&b);
x=&a;y=&b;
swap(x,y);
printf("%d %d\n",*x,*y);
}
void swap(int *a,int *b)
{
int t;
{t=*a;*a=*b;*b=t;}//这样才能完全调换
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式