zoukankan      html  css  js  c++  java
  • 49 多维数组(二维数组)

    1,定义:语法: 类型 数组名[大小][大小]  

      如: int a[2][3]

    2,二维数组在内存的存在形式,各个元素的地址是连续分布的,即在前一个元素基础上加4(int 字节)

     1 void main() {
     2     int a[5][6];  //没有初始化,则是分配的内存垃圾值
     3 
     4     //全部初始化为0
     5     for (int i = 0;i < 5;i++) {
     6         for (int j = 0;j < 6;j++) {
     7             a[i][j] = 0;
     8         }
     9     }
    10 
    11     a[1][2] = 1;
    12     a[2][1] = 2;
    13     a[2][3] = 3;
    14 
    15     //输出二维数组
    16     for (int i = 0;i < 5;i++) {
    17         for (int j = 0;j < 6;j++) {
    18             printf("%d  ", a[i][j]);
    19         }
    20         printf("
    ");
    21     }
    22 
    23     //查看二维数组的布局
    24     printf("二维数组的首地址:%p
    ", a);
    25     printf("二维数组的首地址:%p
    ", a[0]);
    26     printf("二维数组的首地址:%p
    ", &a[0][0]);
    27 
    28     //将二维数组各个元素的地址输出
    29     for (int i = 0;i < 5;i++) {
    30         for (int j = 0;j < 6;j++) {
    31             printf("a[%d][%d]的地址=%p   ", i, j, &a[i][j]);
    32         }
    33         printf("
    ");
    34     }
    35 }

     3,二维数组的内存布局图

    4,二维数组直接初始化

      ①类型 数组名[大小][大小] = { {值1,值2......} , {值1,值2.......} , {值1,值2.........} }

        

      ②类型 数组名[大小][大小]= { 值1,值2,值3,值4,值5,值6........}

        

     5,请使用灵活的方式遍历如下数组:并得到和

      int  map[3][3] = { {0,0,1} , {1,1,1} , {1,1,3 } } ;

     1 void main() {
     2     int map[3][3] = { {0,0,1},{1,1,1},{1,1,3} };
     3 
     4     //1,先得到行
     5     int rows = sizeof(map) / sizeof(map[0]);
     6 
     7     //2,得到列
     8     int cols = sizeof(map[0]) / sizeof(int);
     9     
    10     int sum = 0;
    11     for (int i = 0;i < rows;i++) {
    12         for (int j = 0;j < cols;j++) {
    13             printf("%d  ", map[i][j]);
    14             sum += map[i][j];
    15         }
    16         printf("
    ");
    17     }
    18     printf("sum=%d
    ", sum);
    19 }

     6,二维数组细节

      ①可以只对部分元素赋值,未赋值的元素自动取“零”值,

        

           

       ②如果对全部元素赋值,那么第一维的长度可以不给出

      ③二维数组可以看作是由一维数组嵌套而成的,如果一个数组的每个元素又是一个数组,那么它就是二维数组。

        二维数组 a[3][4] 可以看作三个一维数组,他们的数组名分别为 a[0]  a[1]  a[2] ,这三个一维数组都有4个元素

      

  • 相关阅读:
    Linux XOR.DDoS样本取证特征与清除
    利用Volatility对Linux内存取证分析-常用命令翻译
    【黑客免杀攻防】读书笔记14
    CertUtil.exe被利用来下载恶意软件
    利用rundll32执行程序的函数执行程序
    揭秘Patchwork APT攻击-恶意软件样本BADNEWS
    【CTF MISC】pyc文件反编译到Python源码-2017世安杯CTF writeup详解
    [ 总结 ] 删除通过find查找到的文件
    [ 脚本 ] RHEL6.x 及Centos6.x 初始化脚本
    [ 手记 ] 联想rd650服务器整列及系统安装
  • 原文地址:https://www.cnblogs.com/shanlu0000/p/12359814.html
Copyright © 2011-2022 走看看