1. 數組介紹
C語言的數組是一個同類型數據的集合,主要用來存儲一堆同類型的數據。
程序里怎么區分是數組? [ ]
這個括號是數組專用的符號. 定義數組、 訪問數組數據都會用到。
數組的定義語法:
int data[10]; <數據類型> <數據名稱>[常量-整數-數據數量];
定義一個int類型的數組,數組的名稱是data,長度是10,所占空間大小:4*10 字節。
特點:
1. 訪問數組成員的時候:下標是從0開始的。int data[10]; 下標 (0~9)
2. 數組只是支持在定義的時候進行整體賦值。
3. 數組定義的時候,[]里只能填常量。數組在定義之后就無法更改大小。
4. 數組的空間是連續的—內存。
5. 數組的名稱就是數組空間的首地址。
6. 數組初始化時,如果沒有賦值,那么數組空間里的數據是未知的---局部變量。
7. 數組初始化時,只要給一個空間賦值,剩余空間都自動初始化為0---局部變量。
數組練習1: 定義一個數組、打印出數組里的數據
#include
int main()
{
char i;
int data[10]={12,13,14,15}; //下標
int a[5];
for(i=0;i<10;i++) //0~9
{
printf("data[%d]=%d\n",i,data[i]);
}
for(i=0;i<5;i++) //0~4
{
printf("a[%d]=%d\n",i,a[i]);
}
return 0;
}
數組練習2: 從鍵盤上讀取5個數據存放到數組里,在順序打印、逆序打印
#include
int main()
{
int i;
int data[5]={0}; //下標
//從鍵盤上讀取5個數據存放到數組里
printf("請輸入5個數據:");
for(i=0;i<5;i++)
{
scanf("%d",&data[i]); //兩種: 空格 、 回車-換行
}
for(i=0;i<5;i++)
{
printf("data[%d]=%d\n",i,data[i]);
}
for(i=4;i>=0;i--)
{
printf("data[%d]=%d\n",i,data[i]);
}
return 0;
}
2. 數組定義語法與注意事項
1. 數組的名稱是數組元素的首地址。(數組的名字就是地址)
2. 數組只能在初始化的時候進行整體賦值。比如: int a[100]={10,20,30};
3. 數組的下標訪問是從0開始的。比如: int a[10]; 下標范圍: a[0] ~ a[9]
4. 數組名稱雖然是地址,但是這個地址是不能偏移、也不能自增自減,也不能改變指向。
int a[10];
int b[10];
a++、a--; //錯誤的
a=b; //錯誤的
a[0]=b[0]; // 正確
5. 如果數組是局部變量,初始化沒有賦值的情況下,成員是隨機值。
比如: int a[10]; printf("%d\n",a[0]);
初始化的時給數組進行賦值,那么沒有賦值的下標是什么值?
比如: int a[10]={1,2,3}; printf("%d\n",a[6]); //0
6. 數組定義的時候(C89), 數組的下標里的大小只能填常量。
比如:
int a[]; //錯誤的,定義數組必須填大小
int size=10; int a[size]; //錯誤的,定義數組只能填常量。
int b[100]; //正確
#define SIZE 100 int a[SIZE]; //正確
3. 案例: 計算平均值
要求: 定義數組,從鍵盤上錄入5個浮點類型數據存放到數組,計算平均值和最大、最小值,輸出到屏幕上。
#include
int main()
{
int i;
float sum=0;
float data[5];
float max=0;
float min=100;
printf("請輸入5個數據:");
/*1. 輸入數據*/
for(i=0;i<5;i++)
{
scanf("%f",&data[i]);
}
/*2. 處理數據*/
for(i=0;i<5;i++)
{
sum+=data[i]; //累加
if(data[i]>max)max=data[i];
if(data[i])min=data[i];>
4. 案例: 求和
要求: 定義數組,從鍵盤上錄入5個整數數據,求和,輸出結果。
#include
int main()
{
int i;
int sum=0;
int data[5];
printf("請輸入5個數據:");
/*1. 輸入數據*/
for(i=0;i<5;i++)
{
scanf("%d",&data[i]);
}
/*2. 處理數據*/
for(i=0;i<5;i++)
{
sum+=data[i]; //累加
}
printf("和:%d\n",sum);
return 0;
}
5. 案例: 判斷數據范圍
要求: 定義數組,從鍵盤上錄入10個整數數據,計算里面大于5、大于10數據的數量,輸出結果。
#include
int main()
{
int i;
int data[10];
int cnt_10=0,cnt_5=0;
printf("請輸入10個數據:");
for(i=0;i<10;i++)
{
scanf("%d",&data[i]);
}
//處理數據
for(i=0;i<10;i++)
{
if(data[i]>5)cnt_5++;
if(data[i]>10)cnt_10++;
}
printf("cnt_5=%d\n",cnt_5);
printf("cnt_10=%d\n",cnt_10);
return 0;
}
6. 案例: 冒泡排序-整數數組
從鍵盤上錄入10個數據,進行冒泡排序. 大到小排序。
#include
int main()
{
//從鍵盤上錄入5個數據,進行冒泡排序. 大到小排序。
int a[5];
int i,j;
int tmp;
printf("錄入5個數據:");
for(i=0;i<5;i++)
{
scanf("%d",&a[i]);
}
for(i=0;ia[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
for(i=0;i(a)>(a)>
7. 字符串數組
7. 字符串數組
7.1 字符串特點
7.1 字符串特點
1. 字符串本身就是字符數組。比如:char a[10]="123";
2. 常規字符串使用雙引號括起來的。 比如:char a[10]="123";
3. 字符串以'\0' 作為結束符號。
4. 字符數組一定是字符串? 不一定。 比如: char a[]={12,3,4,5,5};
7.2 字符串定義
7.2 字符串定義
#include
int main()
{
char buff1[10]={'1','2','3','\0','4','5','6','\0','7'};
char buff2[]={'1','2','3','\0'};
char buff3[]="123";
printf("%d\n",sizeof(buff2)); //4
printf("%d\n",sizeof(buff3)); //4
return 0;
}
7.3 計算字符串長度
7.3 計算字符串長度
#include
#include
int main()
{
char buff[100];
int cnt=0;
printf("請鍵盤上錄入字符串:");
scanf("%s",buff); // 不可以錄入空格
while(buff[cnt]!='\0')
{
cnt++;
}
printf("cnt=%d\n",cnt);
return 0;
}
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
C語言
+關注
關注
180文章
7604瀏覽量
136827 -
數組
+關注
關注
1文章
417瀏覽量
25947
發布評論請先 登錄
相關推薦
C語言數組的學習教程說明
同樣我們在程序中也需要容器,只不過該容器有點特殊,它在程序中是一塊連續的,大小固定并且里面的數據類型一致的內存空間,它還有個好聽的名字叫數組。可以將數組理解為大小固定,所放物品為同類的一個購物袋,在該購物袋中的物品是按一定順序放置的。
發表于 07-29 08:00
?0次下載
C語言_數組的查找、替換、排序、拼接
這篇文章主要是總結C語言的位運算幾個實戰例子,接著介紹數組的基本定義用法、數組排序、插入、拼接、刪除、字符串查找替換等。
C語言數組元素的指針
C語言調用函數時虛實結合的方法都是采用“值傳遞”方式,當用變量名作為函數參數時傳遞的是變量的值,當用數組名作為函數參數時。
由于數組名代表的是
C 語言數組的基本結構
數組是最基本的數據結構,關于數組的面試題也屢見不鮮,本文羅列了一些常見的面試題,僅供參考。目前有以下18道題目。 數組求和 求數組的最大值和最小值 求
評論