对输入的两个整数按大小顺序输出
尝试调用swap函数来实现题目要求在函数中改变形参(指针变量)的值,希望能由此改变实参(指针变量)的值
- 代码如下:
#include<stdio.h>
int *p,*q;
void swap(int *p,int *q);
int main()
{
int a,b;
printf("Input a,b:\n");
scanf("%d%d",&a,&b);
p=&a;
q=&b;
printf("before:a=%d,b=%d\n",a,b);
if(a<b){
swap(p,q);
}
return 0;
}
void swap(int *p,int *q)
{
int t;
t=*p;
*p=*q;
*q=t;
printf("after:a=%d,b=%d\n",*p,*q);
}
运行结果:
- 错误示例:
{
int *t;
t=p;
p=q;
q=t;
}
这样只是交换了p,q两个指针,并没有交换两个指针里面的值。