请帮帮小弟看懂这条程序,讲的尽量详细点,谢谢了!
程序代码:
#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”一起声明了,然后在下面就直接调用。按源程序的结构让我看的好凌乱啊!!!