求教,在程序中计算数组长度并应用,主函数不能得到正确结果
程序代码:
#include <stdio.h> void select_sort(int *a,int n) { //int a_len = sizeof(a)/sizeof(int); //calculate the length of array \ 为什么在此计算数组长度就不能在主程序中正常工作? int i=0,j=0; int min = 0; int temp = 0; //for(i = 0; i < a_len-1; i++) //运用计算的数组长度 for(i = 0; i < n - 1 ; i++) { min = i; //for(i = 0; i < a_len; i++) //运用计算的数组长度 for(j = i + 1; j <n ; j++) if(a[min] > a[j]) min = j; if(i != min) { temp = a[i]; a[i] = a[min]; a[min] = temp; } } } int main() { int L[9] = {5,8,6,74,35,3,14,9,56}; int i = 0; int len = sizeof(L) / sizeof(int); select_sort(L,len); for(; i < len ; i++) printf("%d\t",L[i]); return 0; }
如上的选择排序,为什么在选择排序的程序中计算数组长度并用作for循环的条件后,再在主函数中运行不能得到排序后的结果?