C 語(yǔ)言支持?jǐn)?shù)組數(shù)據(jù)結(jié)構(gòu),它可以存儲(chǔ)一個(gè)固定大小的相同類型元素的順序集合。數(shù)組是用來存儲(chǔ)一系列數(shù)據(jù),但它往往被認(rèn)為是一系列相同類型的變量。
一、一維數(shù)組
一維數(shù)組的定義
數(shù)據(jù)類型 數(shù)組名[常量表達(dá)式];
數(shù)組特點(diǎn):[ ] :數(shù)組運(yùn)算符,單目運(yùn)算符,優(yōu)先級(jí)(1),左結(jié)合,不能用( )
編譯時(shí)分配連續(xù)內(nèi)存
內(nèi)存字節(jié)數(shù)=數(shù)組維數(shù)*
sizeof(元素?cái)?shù)據(jù)類型)
數(shù)組名表示內(nèi)存首地址,
是地址常量
二、數(shù)組的引用
int data[5];
data[5]=10; //C語(yǔ)言對(duì)數(shù)組不作越界檢查,使用時(shí)要 注意
數(shù)組必須先定義,后使用v只能逐個(gè)引用數(shù)組元素,不能一次引用整個(gè)數(shù)組v數(shù)組元素表示形式: 數(shù)組名[下標(biāo)]其中:下標(biāo)可以是常量或整型表達(dá)式。
例 int a[10];
printf(“%d”,a);
必須 for(j=0;j<10;j++)
printf(“%d\\t”,a[j]);
int a[5]={1,2,3,4,5};
等價(jià)于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5;
說明:
數(shù)組不初始化,其元素值為隨機(jī)數(shù)
對(duì)static數(shù)組元素不賦初值,系統(tǒng)會(huì)自動(dòng)賦以0值
只給部分?jǐn)?shù)組元素賦初值
當(dāng)全部數(shù)組元素賦初值時(shí),可不指定數(shù)組長(zhǎng)度
static int a[5];
等價(jià)于:a[0]=0; a[1]=0; a[2]=0; a[3]=0; a[4]=0;
int a[]={1,2,3,4,5,6};
編譯系統(tǒng)根據(jù)初值個(gè)數(shù)確定數(shù)組維數(shù)
三、程序舉例
用冒泡法對(duì)10個(gè)數(shù)排序
算法分析:如果有n個(gè)數(shù),則要進(jìn)行n-1趟比較。
在第1趟比較中要進(jìn)行n-1次相鄰元素的兩兩比較,
在第j趟比較中要進(jìn)行n-j次兩兩比較。
比較的順序從前往后,經(jīng)過一趟比較后,
將最值沉底(換到最后一個(gè)元素位置),
最大值沉底為升序,最小值沉底為降序。
排序過程:
(1)比較第一個(gè)數(shù)與第二個(gè)數(shù),若為逆序a[0]>a[1],則交換;然后比較第二個(gè)數(shù)與第三個(gè)數(shù);依次類推,直至第n-1個(gè)數(shù)和第n個(gè)數(shù)比較為止——第一趟冒泡排序,結(jié)果最大的數(shù)被安置在最后一個(gè)元素位置上
(2)對(duì)前n-1個(gè)數(shù)進(jìn)行第二趟冒泡排序,結(jié)果使次大的數(shù)被安置在第n-1個(gè)元素位置.
(3)重復(fù)上述過程,共經(jīng)過n-1趟冒泡排序后,排序結(jié)束
#include
int main()
{
int i,j,t,a[10]={5,4,8,3,6,9,7,222,64,88};
//排序
for(i=1;i<10;i++) //外循環(huán)控制排序趟數(shù),n個(gè)數(shù)排n-1趟
{
for(j=0;j<10-1;j++) //內(nèi)循環(huán)每趟比較的次數(shù),第j趟比較n-i次
{
if(a[j]>a[j+1]) //相鄰元素比較,逆序則交換
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
printf("排序后的結(jié)果是:\\n");
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\\n");
return 0;
}
四、多維數(shù)組
定義方式:
數(shù)據(jù)類型數(shù)組名[常量表達(dá)式][常量表達(dá)式];
例 int a[3][4];
float b[2][5];
int c[2][3][4];
int a[3,4]; (x)
數(shù)組元素的存放順序l原因:內(nèi)存是一維的
二維數(shù)組:按行序優(yōu)先
多維數(shù)組:最右下標(biāo)變化最快
五、二維數(shù)組
二維數(shù)組a是由3個(gè)元素組成,每個(gè)元素a[i]由包含4個(gè)元素的一維數(shù)組組成
二維數(shù)組元素的引用
形式:數(shù)組名[下標(biāo)][下標(biāo)]
將二維數(shù)組行列元素互換,存到另一個(gè)數(shù)組中
#include
main()
{ int a[2][3]={{1,2,3},{4,5,6}};
int b[3][2],i,j;
printf("array a:\\n");
for(i=0;i<=1;i++)
{ for(j=0;j<=2;j++)
{ printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\\n");
}
求二維數(shù)組中最大元素值及其行列號(hào)
#include
main()
{ int a[3][4]={{1,2,3,4},
{9,8,7,6},
{-10,10,-5,2}};
int i,j,row=0,colum=0,max;
max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{ max=a[i][j];
row=i;
colum=j;
}
printf("max=%d,row=%d, \\
colum=%d\\n",max,row,colum);
}
發(fā)布評(píng)論請(qǐng)先 登錄
C語(yǔ)言數(shù)組和指針的區(qū)別

單片機(jī)以太網(wǎng)小工具:html文件轉(zhuǎn)化為C語(yǔ)言的數(shù)組
c語(yǔ)言-數(shù)組
C語(yǔ)言數(shù)組詳解

C語(yǔ)言數(shù)組的學(xué)習(xí)教程說明

C語(yǔ)言總結(jié)_數(shù)組全方位練習(xí)
C語(yǔ)言_數(shù)組的查找、替換、排序、拼接
C語(yǔ)言-數(shù)組
C語(yǔ)言數(shù)組元素的指針
C語(yǔ)言數(shù)組和指針的區(qū)別

評(píng)論