• C语言第六讲,数组


              C语言第六讲,数组

    一丶什么是数组

    数组,就是一整块的连续内存空间.

    且类型都是一样的.大小一样

    比如:

      

    1.1数组元素的访问

    我们要访问数组,例如上面,我们访问元算2,元素3等等怎么访问..

    比如有一个数组为:

      

    int Arry[3] = {1,2,3};   //数组定义初始化.
    Arry[0] = 1;
    Arry[1] = 2;                 //数组的访问
    ......        

    利用下标来进行访问.

    利用程序来进行访问

       int Ary[10] = { 0 };
        for (int i = 0; i < 10; i++)
        {
            printf("%d
    ",i);
        }

    动态的大小识别.

      int Ary[10] = { 0 };
        for (int i = 0; i < sizeof(Ary)/sizeof(Ary[0]); i++)
        {
            printf("%d
    ",i);
        }

    这里用到了一个关键字,Sizeof, sizeof关键字是求大小的关键字. 例如我们求数组的总大小. 然后 利用总大小 除以数组元素个数的大小. 就得出来了数组的个数.

    1.2一维数组的声明

    在C语言中,或者C++语言中,我们要声明数组. 不用考虑在哪里开辟,开辟多大的问题,只需要你给我一个大小.我编译器自动的来进行开辟内存空间供你使用.

    类型 数组名[数组元素的个数]
    例如:
        int Ary[3];   //定义一个Ary的数组,有3个元素.

    注意,声明的时候是个数.也就是说数组有3个元素.  但是访问的时候是下表.从0开始访问

    例如:

      

    ary[0] = 1;
    ary[1] = 2;
    ary[2] = 3;
    
    总共有三个.

    声明的时候则是告诉编译器, 我声明的类型是 int类型,数组名字数Ary,个数是3个. 那么这个数组所占的内存空间则是  3 * 4 = 12个字节大小.

    公式计算:

      3(数组元素个数) * 类型  = 内存空间所占大小.

    1.3数组应该注意的问题.

    在C语言中,数组的声明不支持动态声明.

    什么意思?

      也就是说,你需要给定我个数.我来进行申请.但是你不能把这个个数给一个变量保存.让我跟随变量来申请.

    例如:

      

    int nCount = 10;
    int Ary[nCount];  //错误的

    数组的定义可以和普通成员变量的定义放在一起.

    例如:

      

    int A, ary[5],b;

     

    二丶数组初始化

    上面我们虽然定义了数组.但是并没有仔细讲解数组的初始化

    数组的初始化常用的有三种.

    第一种, 大括号初始化.

    int Ary[3] = { 1, 2 ,3}; //数组中的元素1,元素2,元素三分别初始化为了1,2,3

    第二种.全部初始化.

    int Ary[3] = {0}; //数组的每个元素全部初始化为了0

    第三种,不确定个数的初始化.

    int Ary[] = { 1, 2, 3} ;//有的时候你并不知道你的数组有多大. 但是又不用动态的申请空间.
    所以这样写会默认有3个元素. 

     三丶二维数组和高维数组

    有的时候一维数组并不能满足我们的需求.

    这个是否就需要更高维的数组了.

    例如:

      

    int Ary[2][2];  定义二维数组

    这样则声明了一个二维数组. 代表我们申请了 2行 2列的数组. 大小是 2*2的矩阵.  

    这几个元素分别是:

      

    Ary[0][0] Ary[0][1]
    Ary[1][0] Ary[1][1]

    二维数组的定义初始化.

    int nNum[2][2] = {{0,1},{2,3}}; 使用两个括号即可.

    二维数组对部分元素进行初始化.

    int nNum[2][2] = {{1},{0}};

    二维数组的访问

    二维数组本质是一维数组.但是为了理解.所以说成是二维数组.

    我们利用程序来对其进行访问.

    二维数组初始化
    
        int Ary[3][4] = {0};
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 4; j++)
            {
                Ary[i][j] = i + j; //重要语句. i是行,j是列
            }
        }
    二维数组输出
        for (int i = 0; i < 3; i++ )
        {
            for (int j = 0; j < 4; j++)
            {
                printf(" %d", Ary[i][j]);
            }
            puts("
    ");
        }

    输出结果.

    高维数组则一样,不过一般用不到高维数组.

  • 相关阅读:
    IntelliJ Idea 快速配置
    常用资源工具集合
    IntelliJ Idea 快捷键大全
    spring boot注解梳理
    boot中的Scheduling定时器使用笔记
    OKHttp使用笔记
    EasyExcel使用笔记
    自定义注解用AOP实现接口信息打印
    Java的具体集合
    linux修改系统时间
  • 原文地址:https://www.cnblogs.com/iBinary/p/8472606.html
Copyright © 2020-2023  润新知