zoukankan      html  css  js  c++  java
  • C语言二维数组

    一 :二维数组

        一维数组的每一个元素又是一个数组(数组的数组)

        int a[3][4],定义一个数组,有3个元素,a[0]、a[1]、a[2]

        a[0]  又是一个一维数组,有4个元素

    二:二维数组的定义及注意

        格式:数据类型   二维数组名[第一维的长度][第二维的长度]

        int arr[3][4];

        注意:

        1)数组名不能和变量名重复

        2)遵循标识符命名原则

        3)数组的长度可以使用宏定义

        4)数组的长度可以使用变量

        int m,n;

        scanf("%d,%d",&m,&n);

        int arr[m][n];    //这种写法是可以的 让用户输入两个值

        sum(int x,int y,int arr[x][y]); //这种写法也是可以的

    三:二维数组的初始化

        1)定义的同时进行初始化

        int a[5]={1,2,3};

        int a[] = {1,2};

        int a[3][4]={{},{},{}}

        格式:int a[m][n]={{值1,值2,....,值n},{},{}.....{m}}

        (1)完全初始化

        int a[2][3]={{12,2,3},{23,45,56}};

        int a1[2][3]={1,5,2,3,4,8};  可以的

        a[0][0]=1,a[0][1]=5,a[0][2]=2,

        a[1][0]=3,a[1][1]=4,a[1][2]=8

        //省略第一维的初始化,注意:第二维不能省略

        int a[][2]={{1,2},{3,4},{3,5}};

        //定义了3行2列的数组

        (2)部分初始化

        int a3[2][2]={{0},{0}};

        int a5[2][2]={1,2,3}

        指定元素的初始化

        int a4[3][4]={{[0][3]=1},{[2][2]=100}}

        2)先定义后初始化

        int a[4][3];

        a[0][0]=12,a[0][1]=12,a[0][2]=12

        a[1][0]=12,a[1][1]=12,a[1][2]=12

        3)二维数组的访问

        数组名[行下标][列下标];

        int a[3][4];     //最大下标  a[2][3]

        a[0][0] = 13;

        int [m][n]数组

        行下标范围:0 ~ m-1

        列下标范围:0 ~ n-1

    四:二维数组的存储细节

        二维数组在计算机内存中有两种存储方式:

        1>按行以此存储

        2>按列以此存储

        //计算二维数组占用的总得字节数

        size = sizeof(arr);

        //计算一行占用多少个字节

        size = sizeof(arr[0]);

        //计算一个二维数组的每一行有多少列

        size = sizeof(arr[0])/sizeof(int);

        //计算一个二维数组有多少行

        size = sizeof(arr)/sizeof(arr[0]);

    五:二维数组跟函数的关系,同一维数组也是分为两种情况

        1>数组中得元素作为形参(值传递)

        2>数组名作为形参 (地址传递也就是指针,这样可以改变数组的变量值)

        注意点同一维数组

        应用的话可以作为地图做迷宫,推箱子,五子棋游戏

  • 相关阅读:
    Mysql查询数据库表结构以及字段类型并展示
    Configutation读取properties文件信息
    通过淘宝接口免费获取IP地址信息
    SpringMVC+SPring+Maven+Mybaits+Shiro+Mybaits基础开发项目
    【微信开发】【Asp.net MVC】-- 微信分享功能
    NPOI导出多张图片到Excel
    年末回想 ---- 小步快跑
    【吉光片羽】短信验证
    【JavaScript吉光片羽】--- 滑动条
    电子书和纸质书有什么区别
  • 原文地址:https://www.cnblogs.com/-boy/p/4038819.html
Copyright © 2011-2022 走看看