【发布时间】:2012-10-30 09:25:05
【问题描述】:
我尝试编写一个使用指针对数组进行排序的函数。我的 p 指针指向 x 数组,但我为什么要返回 x 作为指针?
#include <stdio.h>
int sort(int x[], int n){
int *p,k;
p=x;
for(int i=0; i<n-1; i++){
for(int l=i+1; l<n; l++){
if(*(p+i)>*(p+l)){
k=*(p+i);
*(p+i)=*(p+l);
*(p+l)=k;
}
}
}
return *x;
}
int main(){
int n;
scanf("%d", &n);
int a[n];
for(int i=0; i<n; i++){
scanf("%d",&a[i]);
}
sort(a,n);
for(int i=0; i<n; i++){
printf("%d ",a[i]);
}
return 0;
}
【问题讨论】:
-
您为什么要退回任何东西?你不用它。
-
不,你要把它扔掉。如果它像 ret = sort(a,n) 你会使用它。