當(dāng)前文章復(fù)盤(pán)C語(yǔ)言的數(shù)組: 數(shù)組定義規(guī)則、數(shù)組空間類(lèi)型、數(shù)組下標(biāo)使用、數(shù)組存放的數(shù)據(jù)類(lèi)型、數(shù)組數(shù)據(jù)替換、插入、輸入、輸出、字符串輸入、輸出、長(zhǎng)度計(jì)算等等。
一、數(shù)組概念
數(shù)組是一個(gè)相同類(lèi)型元素的集合。
定義數(shù)組語(yǔ)法: <數(shù)據(jù)類(lèi)型><數(shù)組名稱>[數(shù)組的大小];
int data [100];
解釋:
定義一個(gè)int類(lèi)型數(shù)組名稱是data,可以存放100int類(lèi)型的數(shù)據(jù),總大小字節(jié): 100*4。
<數(shù)據(jù)類(lèi)型> 可以填充那些參數(shù)?
基本數(shù)據(jù)類(lèi)型(char 。。float、int。。。。。)、結(jié)構(gòu)體數(shù)據(jù)類(lèi)型、指針類(lèi)型等。
數(shù)組概念說(shuō)明
(1)[]稱為下標(biāo)符號(hào),用來(lái)操作數(shù)組。比如: b=a[10]; //將a數(shù)組里第10個(gè)元素取出來(lái)賦值給b變量。
(2).訪問(wèn)數(shù)組時(shí),下標(biāo)的范圍是從0開(kāi)始。比如: int a[10]; 下標(biāo)范圍: 0~9
(3).數(shù)組在定義時(shí),[]下標(biāo)里填充的大小必須是常量。(C89標(biāo)準(zhǔn)) 比如: int a[b]; //錯(cuò)誤 int a[10];
(4).數(shù)組只有在定義的時(shí)候,才可以整體賦值。比如: int a[10]={12,34,56,78,90};
(5).數(shù)組在定義的時(shí)候,如果賦了值,[]下標(biāo)里可以不用指定大小。 比如: int a[]={12,34,56};
(6).數(shù)組在定義的時(shí)候,至少給一個(gè)下標(biāo)賦了初始值,其他下標(biāo)默認(rèn)置為0。比如: int a[10]={0};
#include
int main(void)
{
int buff_i[10]={10,20,30}; //定義整數(shù)類(lèi)型數(shù)組
float buff_f[10]={10.123,20.123,30.123}; //定義浮點(diǎn)數(shù)類(lèi)型數(shù)組
char buff_c[10]="123456";//定義字符串類(lèi)型數(shù)組,結(jié)尾多了一個(gè)結(jié)束符"\0"
//說(shuō)明: 在C語(yǔ)言里面沒(méi)有專(zhuān)用字符串類(lèi)型,字符串本身還是使用char類(lèi)型定義。Qstring Sting
char buff[10]={'1','2','3','4'}; //定義字符類(lèi)型數(shù)組
int i;
//打印整型
for(i=0;i<10;i++)
{
printf("%d ",buff_i[i]);
}
printf("\n");
//打印浮點(diǎn)類(lèi)型
for(i=0;i<10;i++)
{
printf("%f ",buff_f[i]);
}
printf("\n");
//打印字符串
printf("%s\n",buff_c);
//打印字符類(lèi)型
for(i=0;i<10;i++)
{
printf("%c ",buff[i]);
}
printf("\n");
return 0;
}
二、數(shù)組輸入輸出
#include
//從鍵盤(pán)上錄入一串?dāng)?shù)據(jù),倒序輸出
int main(void)
{
int i;
int buff[5];
printf("請(qǐng)輸入5個(gè)數(shù)據(jù):");
for(i=0;i<5;i++)
{
scanf("%d",&buff[i]); //從鍵盤(pán)上錄入數(shù)據(jù)
}
for(i=5-1;i>=0;i--)
{
printf("%d ",buff[i]); //將數(shù)據(jù)打印到控制臺(tái)終端
}
printf("\n");
return 0;
}
三、數(shù)組的練習(xí)題目
(1). 從鍵盤(pán)上錄入一串?dāng)?shù)據(jù)(整數(shù)),將數(shù)組里的10替換成66,并統(tǒng)計(jì)替換的數(shù)量。
#include
int main(void)
{
//將數(shù)組里的10替換成66,并統(tǒng)計(jì)替換的數(shù)量。
int buff[10]={10,34,10,347,23,10,123,56,78,10};
int i,cnt=0;
for(i=0;i<10;i++)
{
if(buff[i]==10)
{
cnt++; //記錄數(shù)量
buff[i]=66;
}
}
printf("替換的數(shù)量%d\n",cnt);
for(i=0;i<10;i++)
{
printf("%d ",buff[i]);
}
printf("\n");
return 0;
}
(2) 計(jì)算數(shù)組的大小
int main(void)
{
int buff[]={10,34,10,347,23,10,123,56,78,10,45,10,10};
//34,347,23,123,56,78
int len=10;
printf("buff數(shù)組的總大小=%d\n",sizeof(buff));
printf("buff數(shù)組有%d個(gè)成員\n",sizeof(buff)/sizeof(buff[0]));
return 0;
}
(3)從鍵盤(pán)上輸入一串?dāng)?shù)據(jù)(整數(shù)),將數(shù)組里大于10的數(shù)據(jù)刪除掉。
//比如: char buff[]={12,34,8,4,7,100};
//最終的結(jié)果:{8,4,7,0,0,0}
#include
/*
從鍵盤(pán)上輸入一串?dāng)?shù)據(jù)(整數(shù)),將數(shù)組里大于10的數(shù)據(jù)刪除掉。
*/
int main(void)
{
int buff[13]={1,34,2,347,23,3,123,56,78,4,45,5,6};
int len=13;
int i,j;
for(i=0;i10) //當(dāng)if條件成立的時(shí)候,i就是當(dāng)前需要覆蓋數(shù)據(jù)下標(biāo)
{
//將后面的所有數(shù)據(jù)向前移動(dòng)一位
for(j=i;j;j++)>;i++)>
四、字符串
(1)字符串大小計(jì)算示例
char str1[]={'A','B','c'}; //3
char str2[]="ABC"; //4
printf("str1=%d\n",sizeof(str1)); //3
printf("str2=%d\n",sizeof(str2)); //4
//為什么是4 ?因?yàn)樽址Y(jié)尾自帶一個(gè)'\0'
// '\0'表示是字符串的結(jié)束符號(hào)
(2)字符串的長(zhǎng)度計(jì)算
#include
int main(void)
{
char str[100];
//字符串如何從鍵盤(pán)上錄入?
scanf("%s",str); //從鍵盤(pán)上錄入一個(gè)字符串
//str為什么不加&符號(hào)? 因?yàn)閿?shù)組的名稱就是地址(表示是數(shù)組首地址)。
//字符串如何輸出?
printf("str=%s\n",str);
//如何知道從鍵盤(pán)上輸入了多少個(gè)字符?
//首先得知道一點(diǎn): 字符串結(jié)尾符'\0' 字符
int i=0;
while(str[i]!='\0') //判斷字符串的結(jié)束符
{
i++;
}
printf("字符串的長(zhǎng)度=%d\n",i);
return 0;
}
(3)字符串的銜接符號(hào)
#include
int main(void)
{
char str[100]="3847tr45gt\ // \表示字符串的銜接符號(hào)
rhonrbngfbn\
gf";
return 0;
}
審核編輯:湯梓紅
-
C語(yǔ)言
+關(guān)注
關(guān)注
180文章
7630瀏覽量
140560 -
數(shù)組
+關(guān)注
關(guān)注
1文章
419瀏覽量
26398
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式C語(yǔ)言知識(shí)點(diǎn)總結(jié)
C語(yǔ)言知識(shí)總結(jié):數(shù)組與字符/字符串
關(guān)于c語(yǔ)言中數(shù)組下標(biāo)的加減平移知識(shí)點(diǎn)總結(jié)不看肯定后悔
C語(yǔ)言程序小知識(shí)點(diǎn)總結(jié)
C語(yǔ)言入門(mén)教學(xué)之數(shù)組資料總結(jié)免費(fèi)下載

適合C語(yǔ)言小白看的基礎(chǔ)知識(shí)梳理總結(jié)
嵌入式C語(yǔ)言知識(shí)總結(jié)

評(píng)論