数组的使用

数组

  1. 为什么需要数组        为了解决大量同类型数据的存储和使用问题 ; 为了模拟现实世界

  2. 数组的分类

    一维数组

    怎样定义一维数组 为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}
       
    }

    输出二维数组内容

/*
 输出数组的内容
*/

# include <stdio.h>

int main(void)
{
int a[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
int i, j; // 输出数组的内容

for(i=0; i<3; ++i)
{
for(j=0; j<4;++j)
printf("%-5d", a[i][j]); // "-"号表示左对齐,5表示占五个位置
printf(" ");
}

return 0;

}

多维数组

是否 存在多维数组 不存在 因为内存是线性一维的 n维数组可以当做每个元素是n- 1维数组的数组

比如: int a[3][4 】 该数组是含有三个元素的一维数组 只不过每个元素都可以再分成4个小元素

int a【3】【4】【5】 该数组是含有3个元素的一维数组 只不过每个元素都是4行5列的二维数组



原文地址:https://www.cnblogs.com/icoding233/p/13174052.html