1、爲什麼需要數組?
爲了解決大量同類型數據的存儲和使用;
爲了模擬現實世界
2、數組的分類
一維數組
爲n個變量連續分配存儲空間;
所有的變量數據類型和所佔的字節大小必須都相同。
有關一維數組的操作:
初始化
完全初始化
int a[5]={1,2,3,4,5};
不完全初始化,未被初始化的元素自動爲零
int a[5]={1,2,3};
不初始化,所有元素是垃圾值
int a[5]
清零
int a[5]={0};
【 錯誤寫法】:
————int a[5];
a[5]={1,2,3,4,5};//錯誤
只有在定義數組的同時纔可以整體賦值,其他情況下整體賦值都是錯誤的,上述的a
[5]表示的就是數組a的第六個元素。而不是整個數組。
————int a[5]={1,2,3,4,5};
int b[5];
如果要把a數組中的值全部複製給b數組
b=a;//錯誤
正確的寫法:
for(i=0;i<5;i++)
b[i]=a[i];
賦值;排序;求最大/小值;倒置;查找;插入;刪除
/************************************
2011年9月9日19:11:12
目的:把一個數組的元素全都倒過來
*************************************/
#include<stdio.h>
int main(void)
{
int a[8]={1,2,3,4,5,6,7,8};
int i,j;
int t;
i=0;
j=7;
while(i<j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
i++;
--j;
}
for(i=0;i<8;i++)
printf("%d\n",a[i]);
return 0;
}
二維數組
a[i][j]表示第i+1行第j+1列的元素;
初始化:
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12}
int a[3][4]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
}
對二維數組排序
求每一行的最大值
判斷矩陣是否對稱
矩陣的相乘
多維數組 不存在多維數組
因爲內存是線性一維的 n維數組可以當做每個元素是n-1維數組的一維數組