zoukankan      html  css  js  c++  java
  • COPYMEMORY 实现 N维数组向M维数组的转化

    'copymemory可以实现不同维数数组间的转换,如:

    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, ByVal ByteLen As Long)
    Dim a(5, 7) As Byte, b(15, 2) As Byte, c(47) As Byte, d(2, 3, 3) As Byte '定义48个元素的四个数组用于测试
    Sub xxxx()
    Dim i As Integer, j As Integer, k As Integer For i = 0 To 5 '随机定义数组a
    For j = 0 To 7
    a(i, j) = Int(Rnd * 128)
    Next
    Next Debug.Print "array a():" '数组a( 6 行8 列)
    For i = 0 To 5
    For j = 0 To 7
    Debug.Print Right(Space(5) & a(i, j), 5);
    Next
    Debug.Print
    Next
    Debug.Print Debug.Print "array b():" '数组b( 16 行 3 列)
    CopyMemory b(0, 0), a(0, 0), 48
    For i = 0 To 15
    For j = 0 To 2
    Debug.Print Right(Space(5) & b(i, j), 5);
    Next
    Debug.Print
    Next
    Debug.Print
    Debug.Print "array c():" '数组c( 48 行 1 列)
    CopyMemory c(0), b(0, 0), 48
    For i = 0 To 47
    Debug.Print Right(Space(5) & c(i), 5)
    Next
    Debug.Print Debug.Print "array d():" '数组d( 3 行 4 列 4 层)
    CopyMemory d(0, 0, 0), c(0), 48
    For i = 0 To 2
    For j = 0 To 3
    For k = 0 To 3
    Debug.Print Right(Space(5) & d(i, j, k), 5);
    Next
    Debug.Print
    Next
    Debug.Print "---------------------------"
    Next
    End Sub

    返回:

    array a():
       31  125    7   49   46   62   19   60
       32   80   69   20  120   83   64   49
       13  100   58   96   76  106    2   26
        9   13   42   16    0   68   84   69
      105   10   24   86   58   45   19   90
      118   67   11   96   51   59   62   26 array b():
       31   24  106
       32   11   68
       13   49   45
        9   20   59
      105   96   19
      118   16   64
      125   86    2
       80   96   84
      100   46   19
       13  120   62
       10   76   60
       67    0   49
        7   58   26
       69   51   69
       58   62   90
       42   83   26 array c():
       31
       32
       13
        9
      105
      118
      125
       80
      100
       13
       10
       67
        7
       69
       58
       42
       24
       11
       49
       20
       96
       16
       86
       96
       46
      120
       76
        0
       58
       51
       62
       83
      106
       68
       45
       59
       19
       64
        2
       84
       19
       62
       60
       49
       26
       69
       90
       26 array d():
       31    7   46   19
        9   42    0   84
      125   49   62   60
       13   16   68   69
    ---------------------------
       32   69  120   64
      105   24   58   19
       80   20   83   49
       10   86   45   90
    ---------------------------
       13   58   76    2
      118   11   51   62
      100   96  106   26
       67   96   59   26
    ---------------------------
  • 相关阅读:
    apply call bind方法的区别和含义
    html头部meta标签
    语义化标签
    “文件名和url路径名”命名要点以及大小写问题
    BMP GIF PNG JPG等图片格式的区别和适用情况
    前端页面的性能优化
    js阻止默认事件,如a标签跳转和事件冒泡
    散列碰撞问题的解决——开链法(拉链法)
    substring()方法
    对学生成绩进行散列
  • 原文地址:https://www.cnblogs.com/fengju/p/6336349.html
Copyright © 2011-2022 走看看