c语言的指针交换问题
看以下两个例子,同样是通过交换指针改变变量的值,为什么第一个成功了,而第二个失败了#include<stdio.h>main(){int*p,*q,*t,a,b;puts...
看以下两个例子,同样是通过交换指针改变变量的值,为什么第一个成功了,而第二个失败了
#include<stdio.h>
main()
{
int *p,*q,*t,a,b;
puts("please input a and b:");
scanf("%d%d",&a,&b);
p=&a;q=&b;
if(a<b)
{
t=p;p=q;q=t;
}
printf("max=%d,min=%d\n",*p,*q);
}
输入3 5
运行结果max=5,min=3
#include<stdio.h>
void swap(int *a,int *b)
{
int *t;
t=a;a=b;b=t;
}
main()
{
int i,j,*p=&i,*q=&j;
printf("please input i and j:\n");
scanf("%d%d",&i,&j);
swap(p,q);
printf("%d %d\n",*p,*q);
}
输入3 5
执行结果3 5 展开
#include<stdio.h>
main()
{
int *p,*q,*t,a,b;
puts("please input a and b:");
scanf("%d%d",&a,&b);
p=&a;q=&b;
if(a<b)
{
t=p;p=q;q=t;
}
printf("max=%d,min=%d\n",*p,*q);
}
输入3 5
运行结果max=5,min=3
#include<stdio.h>
void swap(int *a,int *b)
{
int *t;
t=a;a=b;b=t;
}
main()
{
int i,j,*p=&i,*q=&j;
printf("please input i and j:\n");
scanf("%d%d",&i,&j);
swap(p,q);
printf("%d %d\n",*p,*q);
}
输入3 5
执行结果3 5 展开
展开全部
//C语言的参数传递方式是传值。第二个改为:
#include<stdio.h>
void swap(int *a,int *b) //交换a,b的值,不起任何作用。应该交换a,b所指对象的值。
{
int t;
t=*a;*a=*b;*b=t;
}
main()
{
int i,j,*p=&i,*q=&j;
printf("please input i and j:\n");
scanf("%d%d",&i,&j);
swap(p,q);
printf("%d %d\n",*p,*q);
}
#include<stdio.h>
void swap(int *a,int *b) //交换a,b的值,不起任何作用。应该交换a,b所指对象的值。
{
int t;
t=*a;*a=*b;*b=t;
}
main()
{
int i,j,*p=&i,*q=&j;
printf("please input i and j:\n");
scanf("%d%d",&i,&j);
swap(p,q);
printf("%d %d\n",*p,*q);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上都直接交换变量了吧,楼主好像是想交换指针指向而不是交换变量的哦,要这样
#include<stdio.h>
void swap(int **a,int **b)
{
int t;
t=*a;*a=*b;*b=t;
}
main()
{
int i,j,*p=&i,*q=&j;
printf("please input i and j:\n");
scanf("%d%d",&i,&j);
swap(&p,&q);
printf("%d %d\n",*p,*q);
}
#include<stdio.h>
void swap(int **a,int **b)
{
int t;
t=*a;*a=*b;*b=t;
}
main()
{
int i,j,*p=&i,*q=&j;
printf("please input i and j:\n");
scanf("%d%d",&i,&j);
swap(&p,&q);
printf("%d %d\n",*p,*q);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询