首先,在標準C語言中,通常是不使用數(shù)組的。在C語言中,數(shù)據(jù)陣列的標準使用方法是定義指針→為數(shù)據(jù)陣列申請內(nèi)存空間→采用計算指針位移的方式尋址。
靜態(tài)數(shù)組也有采用“數(shù)組”形式的,但需注意在函數(shù)間傳遞數(shù)據(jù)時需要使用&符獲取指針。否則無法進行數(shù)據(jù)傳遞。
一維數(shù)據(jù)陣列使用方法(長整數(shù)為例):
long*p0,*p1,i,x;/*聲明指針變量*/
p0=calloc(N*length(long));/*申請內(nèi)存空間*/
……
p1=p0+i;/*計算數(shù)值偏移*/
x=*p1;/*使用數(shù)據(jù)*/
……
cfree(p0);/*釋放內(nèi)存*/
return;
多維數(shù)據(jù)陣列使用方法(長整數(shù)為例):
long*p0,*p1,i,x;/*聲明指針變量*/
p0=calloc(N*M*P*length(long));/*申請內(nèi)存空間*/
……
p1=p0+k*M*N+j*M+i;/*計算數(shù)值偏移*/
x=*p1;/*使用數(shù)據(jù)*/
……
cfree(p0);/*釋放內(nèi)存*/
return;
注意,各維度尋址變量范圍
i=0~N-1;
j=0~M-1;
k=0~P-1;