请帮帮小弟看懂这条程序,讲的尽量详细点,谢谢了!
程序代码:#include <stdio.h>
void main()
{
void exchange(int *q1, int *q2, int *q3);
int a, b, c, *p1, *p2, *p3;
scanf("%d %d %d", &a, &b, &c);
p1 = &a;
p2 = &b;
p3 = &c;
exchange(p1, p2, p3); //确保a > b > c
printf("%d %d %d\n", a, b, c);
}
void exchange(int *q1, int *q2, int *q3) //int *q1 = p1;
{
void swap(int *pt1, int *pt2); //用于交换&……&%
if( *q1 < *q2 )
{
swap(q1, q2);
}
if( *q1 < *q3 )
{
swap(q1, q3);
}
if( *q2 < *q3 )
{
swap(q2, q3);
}
}
void swap(int *pt1, int *pt2)
{
int temp;
temp = *pt1;
*pt1 = *pt2;
*pt2 = temp;
}为什么这段程序部事先声明好所有函数,而是在定义中声明函数。比如说“
void main()
{
void exchange(int *q1, int *q2, int *q3);...
还有void exchange(int *q1, int *q2, int *q3) //int *q1 = p1;
{
void swap(int *pt1, int *pt2); //用于交换&……&%...”
这是什么结构额?为什么不能事先把“exchang”和“swap”一起声明了,然后在下面就直接调用。按源程序的结构让我看的好凌乱啊!!!



