指针问题做参数的问题
程序代码:
#include <stdio.h> #define N 5 void input(int *x, int n); void sort(int *x, int n); void print(int *x, int n); main() { int a[N]; int *p; p = a; input(p, N); sort(p, N); print(p, N); } void input(int *x, int n) { int i, c; for(i=0; i<n; i++) { c = getchar(); *(x+i) = c; } } void sort (int *x, int n) { int i, j, k; for (i=0; i<n-1; i++) { k=i; for (j=i+1; j<n; j++) { if (*(x+i)<*(x+k)) k = j; } if (k != i) { int temp; temp = *(x+k); *(x+k) = *(x+i); *(x+i) = temp; } } } void print(int *x, int n) { int i; for (i=0; i<n; i++) { int c; c = *(x+i); putchar(c); } }
我若是用数组名作参数,似乎可以实现选择法排序,但我想用指针做,改了之后似乎就不行了!求指教!