数组的使用
数组
-
为什么需要数组 为了解决大量同类型数据的存储和使用问题 ; 为了模拟现实世界
-
数组的分类
一维数组
怎样定义一维数组 为n个变量连续分配存储空间
所有的变量数据类型必须相同
所有变量所占的字节大小必须相等
例子:int a[5]
一维数组名不代表数组中所有的元素
一维数组名代表数组第一个元素的地址
有关一维数组的操作:
初始化
完全初始化 int a[5] = {1,2,3,4,5};
不完全初始化 int a[5] = {1,2,3}; 未被初始化的元素自动为0
不初始化 int a[5] ;所有元素是垃圾值
清零int a[5] = {0};
错误写法
int a[5];
a[5] = {1,2,3,4,5}; // 错误写法
只有在定义数组的同时才可以整体赋值,其他情况下整体赋值都是错误的。
int a[5] = {1,2,3,4,5};
a[5] = 100; // error 因为没有a[5]这个元素,最大到a[4]
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];
赋值
二维数组
int a[3][4];
总共是12个元素,可以当作三行四列来看待,这12个元素的名字依次是a[0][0] a[0][1] a[0][2] a[0][3]
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维数组的数组
比如: int a[3][4 】 该数组是含有三个元素的一维数组 只不过每个元素都可以再分成4个小元素
int a【3】【4】【5】 该数组是含有3个元素的一维数组 只不过每个元素都是4行5列的二维数组