c語言之函數參數傳遞之數組篇(轉)


在VC中寫程序都習慣了,一般數組作為函數實參時,最常用的方法就是引用和指針的方法,但是到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]);
}




}

 

這是譚浩強書上的一段例子,選擇法對數組進行排序,據說這個算法要比冒泡法快,有機會用vtune測下,這里比較關鍵是形參的寫法 int array[],實際上就相當於指針或引用。

下面是關於局部變量和全局變量的東東

有時在程序設計中希望某些外部變量只限於被本文件引用,而不能被其他文件引用。這時可以在定義外部變量時加一個static聲明。

 (static)內部函數    

  如果在一個源文件中定義的函數只能被本文件中的函數調用,而不能被同一源程序其它文件中的函數調用, 這種函數稱為內部函     
數。定義內部函數的一般形式是: static 類型說明符 函數名(形參表) 例如:    
static int f(int a,int b) 內部函數也稱為靜態函數。但此處靜態static 的含義已不是指存儲方式,而是指對函數的調用范圍只局限於本文件。 因此在不同的源文件中定義同名的靜態函數不會引起混淆。   

外部函數    
  外部函數在整個源程序中都有效,其定義的一般形式為: extern 類型說明符 函數名(形參表) 例如:    
extern int f(int a,int b)如在函數定義中沒有說明extern或static則隱含為extern。在一個源文件的函數中調用其它源文件中定義的外部函數時,應 用extern說明被調函數為外部函數。例如:    
F1.C (源文件一)    
main()    
{    
extern int f1(int i); /*外部函數說明,表示f1函    
數在其它源文件中*/    
……    
}    
F2.C (源文件二)    
extern int f1(int i); /*外部函數定義*/    
{    
……    
}    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM