當前文章復盤C語言的數組: 數組定義規則、數組空間類型、數組下標使用、數組存放的數據類型、數組數據替換、插入、輸入、輸出、字符串輸入、輸出、長度計算等等。
一、數組概念
數組是一個相同類型元素的集合。
定義數組語法: <數據類型><數組名稱>[數組的大小];
int data [100];
解釋:
定義一個int類型數組名稱是data,可以存放100int類型的數據,總大小字節: 100*4。
<數據類型> 可以填充那些參數?
基本數據類型(char 。。float、int。。。。。)、結構體數據類型、指針類型等。
數組概念說明
(1)[]稱為下標符號,用來操作數組。比如: b=a[10]; //將a數組里第10個元素取出來賦值給b變量。
(2).訪問數組時,下標的范圍是從0開始。比如: int a[10]; 下標范圍: 0~9
(3).數組在定義時,[]下標里填充的大小必須是常量。(C89標準) 比如: int a[b]; //錯誤 int a[10];
(4).數組只有在定義的時候,才可以整體賦值。比如: int a[10]={12,34,56,78,90};
(5).數組在定義的時候,如果賦了值,[]下標里可以不用指定大小。 比如: int a[]={12,34,56};
(6).數組在定義的時候,至少給一個下標賦了初始值,其他下標默認置為0。比如: int a[10]={0};
#include
int main(void)
{
int buff_i[10]={10,20,30}; //定義整數類型數組
float buff_f[10]={10.123,20.123,30.123}; //定義浮點數類型數組
char buff_c[10]="123456";//定義字符串類型數組,結尾多了一個結束符"\0"
//說明: 在C語言里面沒有專用字符串類型,字符串本身還是使用char類型定義。Qstring Sting
char buff[10]={'1','2','3','4'}; //定義字符類型數組
int i;
//打印整型
for(i=0;i<10;i++)
{
printf("%d ",buff_i[i]);
}
printf("\n");
//打印浮點類型
for(i=0;i<10;i++)
{
printf("%f ",buff_f[i]);
}
printf("\n");
//打印字符串
printf("%s\n",buff_c);
//打印字符類型
for(i=0;i<10;i++)
{
printf("%c ",buff[i]);
}
printf("\n");
return 0;
}
二、數組輸入輸出
#include
//從鍵盤上錄入一串數據,倒序輸出
int main(void)
{
int i;
int buff[5];
printf("請輸入5個數據:");
for(i=0;i<5;i++)
{
scanf("%d",&buff[i]); //從鍵盤上錄入數據
}
for(i=5-1;i>=0;i--)
{
printf("%d ",buff[i]); //將數據打印到控制臺終端
}
printf("\n");
return 0;
}
三、數組的練習題目
(1). 從鍵盤上錄入一串數據(整數),將數組里的10替換成66,并統計替換的數量。
#include
int main(void)
{
//將數組里的10替換成66,并統計替換的數量。
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++; //記錄數量
buff[i]=66;
}
}
printf("替換的數量%d\n",cnt);
for(i=0;i<10;i++)
{
printf("%d ",buff[i]);
}
printf("\n");
return 0;
}
(2) 計算數組的大小
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數組的總大小=%d\n",sizeof(buff));
printf("buff數組有%d個成員\n",sizeof(buff)/sizeof(buff[0]));
return 0;
}
(3)從鍵盤上輸入一串數據(整數),將數組里大于10的數據刪除掉。
//比如: char buff[]={12,34,8,4,7,100};
//最終的結果:{8,4,7,0,0,0}
#include
/*
從鍵盤上輸入一串數據(整數),將數組里大于10的數據刪除掉。
*/
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) //當if條件成立的時候,i就是當前需要覆蓋數據下標
{
//將后面的所有數據向前移動一位
for(j=i;j;j++)>;i++)>
四、字符串
(1)字符串大小計算示例
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 ?因為字符串結尾自帶一個'\0'
// '\0'表示是字符串的結束符號
(2)字符串的長度計算
#include
int main(void)
{
char str[100];
//字符串如何從鍵盤上錄入?
scanf("%s",str); //從鍵盤上錄入一個字符串
//str為什么不加&符號? 因為數組的名稱就是地址(表示是數組首地址)。
//字符串如何輸出?
printf("str=%s\n",str);
//如何知道從鍵盤上輸入了多少個字符?
//首先得知道一點: 字符串結尾符'\0' 字符
int i=0;
while(str[i]!='\0') //判斷字符串的結束符
{
i++;
}
printf("字符串的長度=%d\n",i);
return 0;
}
(3)字符串的銜接符號
#include
int main(void)
{
char str[100]="3847tr45gt\ // \表示字符串的銜接符號
rhonrbngfbn\
gf";
return 0;
}
審核編輯:湯梓紅
-
C語言
+關注
關注
180文章
7576瀏覽量
133998 -
數組
+關注
關注
1文章
411瀏覽量
25821
發布評論請先 登錄
相關推薦
評論