这是输入十个数字排序的程序

我过程怎么排序的我知道,但是形式参数调用我有点不理解,第一个问题它为什么要把名字为swap的子函数在最开头进行一个声明,为什么第一个子函数sort不用。第二个问题是第一个子函数sort(int a,int n)这里面的n我知道只是传入一个值而已,那a为什么不能用&a引用,反正效果都是一样,都是改变a数组里面的变量啊。

img

使用一个函数之前,该函数必须有声明或定义,这样编译器才能检查参数个数及类型
swap()函数在sort()内使用,因此,swap()要在sort() 前声明
sort()在main()函数里使用,但是sort()已经在main()前有定义,因此就没必要再声明一次
数组作为参数传递时会自动退化成指针

第一个问题,代码是从上到下执行的的,代码必须执行定义过的函数,因为swap在sort函数之下定义,为了sort能找到swap函数,所以先进行声明,告诉sort函数swap在下面定义