C语言学习笔记-数组-郝斌老师讲解

来源:互联网 发布:刷机软件 编辑:程序博客网 时间:2024/05/29 02:54
数组
    为什么需要数组
            为了解决大量同类型数据的存储和使用的问题
            用数组可以模拟现实世界


数组的分类:
    一维数组
            怎样定义一维数组
                为n个变量连续分配内存空间
                所有的变量的数据类型必须相同 
                所有变量所占的字节大小必须相等

例子:
    int a[5];
        一维数组名不代表数组中所有的元素
        一维数组名代表一维数组第一个元素的地址


有关一维数组的操作:
    初始化
        完全初始化:
                int a[5] = {1, 2, 3, 4, 5};
        不完全初始化,未被初始化的元素自动为零:
                int a[5] = {1, 2};
        不初始化:
                int a[5];
        清零:
                int a[5] = {0};
        错误写法:
                int a[5];
                a[5] = {1, 2, 3, 4, 5};        // 错误
        只有在定义数组的同事才可以整体赋值,其他情况下整体赋值都是错误的
        
                int a[5];
                a[5] = 100;        // 错误,因为没有a[5]这个元素

                int a[5] = {1, 2, 3, 4, 5};
                int b[5];
                如果要把a数组中的值全部复制给b数组
                    错误的写法:
                            b = a;     //error
                    正确的写法:
                            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[1][0]    a[1][1]    a[1][2]    a[1][3]
        a[2][0]    a[2][1]    a[2][2]    a[2][3]
            a[i][j]表示第i+1行第j+1列的元素
            int a[m][n]; //该二维数组右下角的元素是a[m-1][n-1]

初始化:
        int a[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
                            }
输出二维数组元素:


是否存在多维数组?
    不存在。因为内存是线性一维的
    n维数组可以当做每个元素是n-1维数组的一维数组
    比如:
            int a[3][4];
                该数组是含有3个元素是一维数组
                只不过每个元素都可以分成4个小元素