关于Redim 和 Dim的应用
自我感受:
在定义前不知道使用个数可以用 dim 先定义一个数组 dim array() 知道个数时 redim array(n),但如果使用时还是不知道个数,该怎样解决?
也就是说在使用前总应该知道使用的个数,比如循环体循环多少次是不知道的。
例如 while not until eof(1)
循环知道文件尾部
是VB 这点真的很麻烦,还是C却是够强大?
另外VB中没有指针,怎么讲数组的数传入自己定义的函数中进行运算?并将改变后的数组传回主函数?
是我没搞懂吧!哎,菜鸟学习中。!
以下为转载内容:
在有些情况下,用户可能不知道需要多大的数组,这时就需要用一个能够改变大小的数组,这就是动态数组。动态数组可以在任何时侯改变大小。在VB中,动态数组是最灵活、最方便的一种数组。利用动态数组还有助于有效管理内存,因为动态数组是使用时才开辟内存空间,在不使用这个数组时,还可以将内存空间释放给系统。这样就可以最大限度地节省内存,提高运行速度。
创建动态数组需要2步,第一步和固定长度数组(静态数组)类似,用Dim语句(或Private、Public、Static)声明,但是不要指定维数。如:
Dim MyArry () As Integer
第二步在以后的实际程序中,当要用到该数组时,再用ReDim语句分配实际的元素个数,这时需要确定元素的个数。如前面声明的数组MyArry,可以用下面语句将它定义为一个二维数组:
ReDim MyArry(10,10)
ReDim语句只能出现在过程中。与Dim语句、Static语句这些变量声明语句不同,ReDim语句是—个可执行语句,ReDim语句可以改变元素数目以及上下界,但在第一个ReDim语句定义了数组维数之后,就不能够再改变数组维数(最多能定义的维数是60),只能改变数组边界。如:
Dim MyArry () As Single '声明动态数组
ReDim MyArry(30,20,10) '重新定义数组
ReDim MyArry(50,23,21) '再次重新定义数组(这时不能再改变维数)
每次执行ReDim语句时,Visual Basic会把动态数组中的数值重新初始化一遍,当前存储在数组中的值都会全部丢失。但是用户有时希望只改变数组大小,但不丢失数组中的数据。这时,可以使用带Preserve关键字的ReDim语句。其格式为:
ReDim Preserve 数组名([下标下界 To]下标上界) [As 数据类型]
例如:
ReDim MyArry(50,23,21)
ReDim Preserve MyArry(50,23,50)
注意:用Preserve只能在改变数组的最后一维大小时,保留数组的数据。对一维数组来说,所有数据都会保留,而对于多维数组,只能改变最后一维的大小,才能保留全部数组数据,否则出错。
关于Redim 和 Dim的应用相关推荐
- VBA - Redim an Array
转载自:http://www.dailydoseofexcel.com/archives/2004/06/28/redim-an-array/ Array variables can be stati ...
- 用计算机KADIO算方差,KADIO计算器怎样算方差
满意答案 akcek502375 2013.06.18 采纳率:45% 等级:12 已帮助:4113人 1. 因为f(x)在x 2.如上所述,f(x)在[a,b]可导就一定有f(x)在[a,b] ...
- 立方根用计算机怎么输入,平方根立方根怎么用电脑计算机表示?
2006-04-09 举例说明如何用计算器计算:均值.方差.n 1. 因为f(x)在xf(x)dx≥0, 但∫f(x)dx=0,∴[a,b]上f(x)≡0但由f(x)在[a,b]连续,在(a,b)可导 ...
- 如何用计算机算标准误差,举例说明如何用计算器计算:均值、方差、n项和、标准差...
1. 因为f(x)在xf(x)dx≥0, 但∫f(x)dx=0,∴[a,b]上f(x)≡0但由f(x)在[a,b]连续,在(a,b)可导是不能推出f(x)在[a,b]可导的.如果f(x)在[a,b]可 ...
- 用计算机算25的四次幂,如何用计算器算1?
2006-04-09 举例说明如何用计算器计算:均值.方差.n 1. 因为f(x)在xf(x)dx≥0, 但∫f(x)dx=0,∴[a,b]上f(x)≡0但由f(x)在[a,b]连续,在(a,b)可导 ...
- VB中dim与redim的区别?
dim:定义一个固定维数的数组,如dim arr(100). redim:重新定义动态数组的维数,必须先用dim定义一个动态数组: dim arr(),然后可重新定义:redim arr(2,100) ...
- VBA关于数组Dim,ReDim Preserve运行速度对比思考
VBA关于数组Dim,ReDim Preserve运行速度对比思考 如何插入一段漂亮的代码片 以前看教程经常有人说ReDim Preserve动态定义数组运行速度非常慢,特做测试分析是否真的想网友说的 ...
- VB中Dim和Redim的区别
dim:定义一个固定维数的数组,如dim arr(100). redim:重新定义动态数组的维数,必须先用dim定义一个动态数组: dim arr(),然后可重新定义:redim arr(2,100) ...
- dim和redim什么区别
dim 为定义一个变量 redim为重新定义这个变量,redim一般用于对数组的重新定义.重新定义后会丢失所有数据 ReDim 语句 在过程级中声明动态数组变量并分配或重新分配存储空间. ReDim ...
最新文章
- ​ImageNet的top-1终于上了90%,网友质疑:用额外数据集还不公开,让人怎么信服?...
- Java知多少(87)选择框和单选按钮(转)
- 转 PHP 使用 Redis
- 阿里云MaxCompute(大数据)公开数据集---带你玩转人工智能
- python统计httpd 进程的内存占用百分比
- 论文浅尝 - ICLR2020 | 具有通用视觉表示的神经机器翻译
- GPB | 陈润生/何顺民团队发布新版SmProt数据库,提供小蛋白丰富、可靠的系统性注释...
- 移动端上传照片 预览+Draw on Canvas's Demo(解决 iOS 等设备照片旋转 90 度的 bug)...
- go 正则表达式分组匹配_Go语言正则表达式用法实例小结【查找、匹配、替换等】...
- python跟人工智能的关系_Python和人工智能的关系
- access数据库驱动的安装方法
- IO 和NIO的区别
- 抢滩新零售混战 实力战将才不惧双十一 附:双十一红包雨时间表
- 笔记本可以连wifi,但很卡或者无法访问互联网的一种解决方法
- Python 数据处理与分析(三) 设计一个高回报的投资组合(投资回报和风险分析)任务 2:计算不同类型的收益率和投资组合的收益率
- 俱乐部2006年的首次活动-ASP.NET Webpart 开发交流会暨2005回顾
- 星星之火-11:什么是无线资源以及无线资源管理RRM?
- oracle数据库 tds是什么,别被忽悠了才后悔 TDS值到底是什么
- 通过get和post访问HTTP接口的方法
- python话圣诞树_python画圣诞树
热门文章
- 文件格式大全(A-H)
- Android前台服务讲解二之自定义通知视图(RemoteViews)及数据UI更新
- python怎样把两个图画到一起_如何使用python或matlab将多个图像堆叠在一起?
- day17 - Web前端概述
- [转]F#,印度数学教育与优秀编程
- 行云集团独家冠名纪录片《风从东风来》,讲述中国品牌故事
- 网站建设完成后为什么百度不收录网站
- 北大强基计划有计算机吗,北大强基计划
- keil怎么将c语言烧写软件下载,Keil-MDK编译完成后自动烧写下载
- 微信小程序 阻止 onshow请求数据