C语言专题-数组

1.为什么需要数组:
a:为n个变量连续分配储存空间
b:所有的变量数据类型都必须一样
一维数组

例子:int a[5];
初始化:
  完全初始化:int a[5]={1,2,3,4,5};
  不完全初始化: int a[5]={1,2,3};如果这样那么a[0]=1 a[1]=2 a[2]=3 ,没有初始化的a[3] a[4]就为0;
  不初始化:int a [5];  那么所有的值都是垃圾值
  清零初始化:int a[5]={0}; 所有值都为0

错误写法

错误一:只有在定义数组的同时才能整体赋值,其他情况下整体赋值都是错误的
int a[5];
a[5]={1,2,3,4,5};//此时a[5]表示下表对应的元素
错误二:
int a[5]={1,2,3,4,5};
a[5]=100;//数组越界
错误三:
int a[5]={1,2,3,4,5};
int b[5];
如果想要把a数组中的值全部复制给b数组
错误写法:
b=a//error a和b代表的是数组名,是第一个元素的地址
正确的写法
用for循环一个个赋值

二维数组
int a[3][4]:总共是12个元素,可以当作3行四列看待,12个元素一次可以看成:a[0][0],a[0][1],a[0][2],a[0][3].,a[1][0]..a[1][3],a[2][0],a[2][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为数组的一维数组

你可能感兴趣的:(C语言专题-数组)