这是一个 快速排序 程序,qiuck_sort中的参数 array【】为什么能main函数中调用,他的作用域不是仅限于quick函数中吗?
#include<stdio.h>
void quick_sort(int str[],int,int);
void quick_sort(int array[],int left,int right)
{
int i = left,j = right;
int temp;
int pivot;
pivot = array[(left + right) / 2];
while(i <= j)
{
while(array[i]<pivot)
{
i++;
}
while(array[j]>pivot)
{
j--;
}
if(i<=j)
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
i++;
j--;
}
if(left < j)
{
quick_sort(array,left,j);
}
if(i < right)
{
quick_sort(array,i,right);
}
}
}
void main()
{
int array[] = {2,45,32,34,6,36,74,52,3,65,46};
int length = sizeof(array) / sizeof(array[0]);
int i;
quick_sort(array,0,length-1);
for(i=0;i<length;i++)
printf(" %d",array[i]);
putchar('\n');
}
#include<stdio.h>
void quick_sort(int str[],int,int);
void quick_sort(int array[],int left,int right)
{
int i = left,j = right;
int temp;
int pivot;
pivot = array[(left + right) / 2];
while(i <= j)
{
while(array[i]<pivot)
{
i++;
}
while(array[j]>pivot)
{
j--;
}
if(i<=j)
{
temp = array[i];
array[i] = array[j];
array[j] = temp;
i++;
j--;
}
if(left < j)
{
quick_sort(array,left,j);
}
if(i < right)
{
quick_sort(array,i,right);
}
}
}
void main()
{
int array[] = {2,45,32,34,6,36,74,52,3,65,46};
int length = sizeof(array) / sizeof(array[0]);
int i;
quick_sort(array,0,length-1);
for(i=0;i<length;i++)
printf(" %d",array[i]);
putchar('\n');
}