| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 575 人关注过本帖
标题:动态数组的注释是否对 .....学习中
只看楼主 加入收藏
allanwu244
Rank: 2
等 级:论坛游民
帖 子:134
专家分:20
注 册:2007-7-24
结帖率:100%
收藏
 问题点数:0 回复次数:2 
动态数组的注释是否对 .....学习中
请帮忙看看如此注释理解是否对:
红色
  Dim A() As Long

Private Sub Form_Click()
  ReDim Preserve A(1 To 4)                  'Preserve 可选的。关键字,当改变原有数组最末维的大小时,使                                           键字可以保持数组中原来的数据

    A(1) = 1: A(2) = 2: A(3) = 3: A(4) = 4  '为动态数组A中元素赋值
    Dim n As Long: n = 6                    '需要插入的新数值
    ReDim Preserve A(1 To 5)
    Dim i As Long, m As Long                '提供一个临时变量
    For i = 2 To 5                          '插入新数值
        m = A(i)                            '当循环时把数组A(i)的值,放入临时变量 m, 腾出位置A(i),
                                             把需要插入的新数值,赋给A(i),实现插入
        A(i) = n
        n = m                               '再令原来临时变量 m ,赋值给 n
    Next i
    For i = 1 To 5
         Print
         Print Tab(4); "a(" & CStr(i) & ")=" & CStr(A(i)) '输出数组A中的元素
    Next i
End Sub
                                                           谢谢
搜索更多相关主题的帖子: 动态 注释 学习 
2010-01-16 23:42
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
注释没什么问题 ,
程序优化一下如下


----------------------------------------
  Dim A() As Long

Private Sub Form_Click()
  ReDim Preserve A(1 To 4)                  'Preserve 可选的。关键字,当改变原有数组最末维的大小时,使用 Preserve 关键字可以保持数组中原来的数据
'这里,不需要保存原来的值,可以不使用 Preserve  这个关键字,以提供程序执行速度.
'使用这个关键字时,系统需要重新分配内存,然后复制原数据,再释放原内存等过程,需要占用大量的处理时间.

    A(1) = 1: A(2) = 2: A(3) = 3: A(4) = 4  '为动态数组A中元素赋值
    Dim n As Long: n = 6                    '需要插入的新数值
    ReDim Preserve A(1 To 5)
    Dim i As Long, m As Long                '提供一个临时变量
    For i = 5 To 3  step -1                 '插入新数值
        'm = A(i)                            '当循环时把数组A(i)的值,放入临时变量 m, 腾出位置A(i),
                                             把需要插入的新数值,赋给A(i),实现插入
        A(i) = A(i-1)                        '直接把数据向后移一位
        'n = m                               '再令原来临时变量 m ,赋值给 n
    Next i
    a(2)=6                                   '给空出来的2号元素一个值
    For i = 1 To 5
         Print
         Print Tab(4); "a(" & CStr(i) & ")=" & CStr(A(i)) '输出数组A中的元素
    Next i
End Sub


[ 本帖最后由 风吹过b 于 2010-1-18 10:59 编辑 ]

授人于鱼,不如授人于渔
早已停用QQ了
2010-01-18 10:58
allanwu244
Rank: 2
等 级:论坛游民
帖 子:134
专家分:20
注 册:2007-7-24
收藏
得分:0 
能够理解:
'这里,不需要保存原来的值,可以不使用 Preserve  这个关键字,以提供程序执行速度.
'使用这个关键字时,系统需要重新分配内存,然后复制原数据,再释放原内存等过程,需要占用大量的处理时间.
For i = 5 To 3  step -1                 '插入新数值
        'm = A(i)                       '当循环时把数组A(i)的值,放入临时变量 m, 腾出位置A(i),
可以这样理解吗?
  即:把 A(5)=4 , A(4)=3 , A(3)=2 放入临时变量 m,腾出位置A(i),
        A(i) = A(i-1)                        '直接把数据向后移一位
  不能理解?
      已赋值 n=6 如何 n=m         '再令原来临时变量 m ,赋值给 n
   原题没有 a(2)=6                '给空出来的2号元素一个值 同样能做到
                                       
     虽然我写了注释 但有点不明白 所以发此贴

                                                              谢谢您的帮助
                           

边学边做,天天向上.
2010-01-20 12:09
快速回复:动态数组的注释是否对 .....学习中
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025316 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved