在VC中寫程序都習(xí)慣了,一般數(shù)組作為函數(shù)實參時,最常用的方法就是引用和指針的方法,但是到C語言中就沒有引用了,還有一種比較常用的方法:
#  include <stdio.h>   void sort( int array[], int n)  { int i,j,k,t; for(i=0;i<n-1;i++)  {  k=i; for(j=i+1;j<n;j++) if(array[j]<array[k]) k=j;  t=array[k];array[k]=array[i];array[i]=t;   }   }  int main( void)  { int a[10],i;  printf("enter the array "); for(i=0;i<10;i++)  scanf("%d",&a[i]);  sort(a,10);  printf("the sorted array: "); for(i=0;i<10;i++)  printf("%d ",a[i]);  }      }
這是譚浩強書上的一段例子,選擇法對數(shù)組進行排序,據(jù)說這個算法要比冒泡法快,有機會用vtune測下,這里比較關(guān)鍵是形參的寫法 int array[],實際上就相當(dāng)于指針或引用。
下面是關(guān)于局部變量和全局變量的東東
有時在程序設(shè)計中希望某些外部變量只限于被本文件引用,而不能被其他文件引用。這時可以在定義外部變量時加一個static聲明。
(static)內(nèi)部函數(shù)
如果在一個源文件中定義的函數(shù)只能被本文件中的函數(shù)調(diào)用,而不能被同一源程序其它文件中的函數(shù)調(diào)用, 這種函數(shù)稱為內(nèi)部函 數(shù)。定義內(nèi)部函數(shù)的一般形式是: static 類型說明符 函數(shù)名(形參表) 例如: static int f(int a,int b) 內(nèi)部函數(shù)也稱為靜態(tài)函數(shù)。但此處靜態(tài)static 的含義已不是指存儲方式,而是指對函數(shù)的調(diào)用范圍只局限于本文件。 因此在不同的源文件中定義同名的靜態(tài)函數(shù)不會引起混淆。
外部函數(shù) 外部函數(shù)在整個源程序中都有效,其定義的一般形式為: extern 類型說明符 函數(shù)名(形參表) 例如: extern int f(int a,int b)如在函數(shù)定義中沒有說明extern或static則隱含為extern。在一個源文件的函數(shù)中調(diào)用其它源文件中定義的外部函數(shù)時,應(yīng) 用extern說明被調(diào)函數(shù)為外部函數(shù)。例如: F1.C (源文件一) main() { extern int f1(int i); /*外部函數(shù)說明,表示f1函 數(shù)在其它源文件中*/ …… } F2.C (源文件二) extern int f1(int i); /*外部函數(shù)定義*/ { …… }
|