来帮菜鸟指导一下指针和函数调用问题
程序代码:
#include<stdio.h>
void main()
{
void exchange(int *q1,int *q2,int *q3); //函数声明
int a,b,c,*p1,*p2,*p3;
printf("请输入三个数字:");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a,p2=&b,p3=&c;
exchange(p1,p2,p3);
printf("由小到大为:");
}
void exchange(int *q1,int *q2,int *q3) //定义将3个变量的值交换的函数
{
void swap(int *pt1,int *pt2); //函数声明
if(*q1<*q2)swap(q1,q2); /如果a<b,交换a和b的值
if(*q1<*q3)swap(q1,q3); //如果b<c,交换b和c的值
if(*q2<*q3)swap(q1,q3); //如果a<c,交换a和c的值
}
void swap(int *pt1,int *pt2) //定义交换2个变量的值的函数
{
int temp; //换*pt1和*pt2变量的值
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
}这是书上一个例题,输入三个整数a,b,c,要求由大到小的顺序将他们输出。用函数实现。我的疑问:
if(*q1<*q2)swap(q1,q2);
if(*q1<*q3)swap(q1,q3);
if(*q2<*q3)swap(q2,q3);
为什么不是:
if(*q1<*q2)swap(*q1,*q2);
if(*q1<*q3)swap(*q1,*q3);
if(*q2<*q3)swap(*q2,*q3);
两者有什么区别?
麻烦高手解答一下,本人大一,自学到指针,有点不理解。
[ 本帖最后由 wwfdzh2012 于 2012-11-23 12:05 编辑 ]







