void Insert_sort(int array[],int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
//temp=array[i];
for(j=i+1;j<n;j++)
if(array[i]>array[j])
{
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
这是一个
冒泡法排序的子函数,函数参数有两个:数组的首地址和需要排序的元素个数。
main函数为:
int main()
{
int n,i,array[N],k,*p;
p=array;
printf("Please input the number of need to sort(n):");
scanf ("%d",&n);
printf("\nPlease input n numbers:");
for( i=0;i<n;i++)
{
scanf("%d",p++);
}
printf("\nPlease insert the k:");
scanf("%d",&k);
p=array;
Insert_sort(p,k);
for(p=array,i=0;i<k;i++)
{
printf("%d ",*p);
p++;
}
system("PAUSE");
return 0;
}
在main函数中调用: Insert_sort(p,k);传递的是数组的首地址,但在子函数中,改变了数组的值,main最后输出这个数组发现里面的值也被修改了,这个应该能够说明:当形参数组元素发生变化时,实参数组元素的值也会随着发生改变。本回答被提问者采纳