本文所说的 ASP 数组是指在 ASP 中以默认语言 VBScript 为语言的数组。

样例:

Dim   MyArray()   

    for   i   =   0   to   10   

    ReDim   Preserve   MyArray(i)   

    MyArray(i)=i  

    next

下标

  • ASP 数组的下标也是从 0 開始的。
  • 要获取某个元素的值则在数组变量后面加上括号,括号里标明下标值,比方 arr(0),注意不是中括号,而是小括号。

定义

dim arr() '定义动态数组

dim arr2(2) '定义静态数组

在变量名称后面加上括号,就形成了数组。假设括号里指定了数值,就表示定义一个静态数组,即固定大小的数组。

代码中

  • arr() 定义一个动态数组,须要重定义确定长度后才干使用,关于重定义请參见后面。
  • arr2(2) 定义一个下标上限是
    2(长度为 3)的静态数组,这与其它语言(比方 C#、JavaScript)有所不同,其它语言的括号里參数表示长度。

erase

erase 动态数组时释放动态数组的存储空间;erase 静态数组时,仅仅是初始化数组的元素值。

dim arr()

redim arr(2)

erase arr

alert(ubound(arr)) '错误,erase
已经将动态数组的存储空间所有释放。



dim arr(1)

erase arr

alert(ubound(arr)) '显示
1,erase 仅仅是初始化静态数组的元素值,其占用的空间还在。 

重定义 redim

对于动态数组,能够重定义,重定义之后也能够继续重定义;不能对静态数组进行重定义。

dim arr()

dim arr2(2)

dim arr3()

redim arr(0) '将数组 arr 的下标上限设为 0(长度为 1)。

redim arr2(1) '错误发生。

redim arr3(-1) '正确,能够设置为
-1,以表示这个数组长度为 0。

如上重定义数组将导致该数组原有赋值丢失。

重定义 redim preserve

前面讲到重定义数组将导致该数组原有赋值丢失,怎么能保证不丢失呢?用 redim preserve。

dim arr()

 

redim arr(1)

arr(0) = "1"

alert(arr(0)) '显示 1

 

redim preserve arr(2)

alert(arr(0)) '仍然显示 1

UBound

ASP
数组没有获取长度的属性或方法,仅仅有获取下标上限的方法-UBound(数组名称),即数组下标的最大值,比方 UBound(arr)。

dim arr(1)

Response.Write(UBound(arr)) ' 显示上限 1,数组长度为 2



dim arr2()

redim arr2(-1) ' 能够为动态数组 redim 上限为 -1,但不能为其它负数,比方 -2 就会报“内存不够”。

Response.Write(UBound(arr2)) ' 显示上限 -1,数组长度为 0



dim arr3()

'Response.Write(UBound(arr3)) ' 错误发生

Split

Split 将字符串分隔为数组,例如以下 arr2 是错误的。

dim arr

dim arr2() '错误,这里不能有括号。

arr = Split("1,2,3", ",")

arr2 = Split("1,2,3", ",")
Dim   MyArray()   

  for   i   =   0   to   10   

  ReDim   Preserve   MyArray(i)   

  MyArray(i)=i  

  next 样例:
Dim   MyArray()   

  for   i   =   0   to   10   

  ReDim   Preserve   MyArray(i)   

  MyArray(i)=i  

  next 样例:

asp动态数组的更多相关文章

  1. 常用数据结构-线性表及Java 动态数组 深究

    [Java心得总结六]Java容器中——Collection在前面自己总结的一篇博文中对Collection的框架结构做了整理,这里深究一下Java中list的实现方式 1.动态数组 In compu ...

  2. C语言 · 动态数组的使用

    从键盘读入n个整数,使用动态数组存储所读入的整数,并计算它们的和与平均值分别输出.要求尽可能使用函数实现程序代码.平均值为小数的只保留其整数部分. 样例输入: 5 3 4 0 0 2样例输出:9 1样 ...

  3. C++中关于[]静态数组和new分配的动态数组的区别分析

    这篇文章主要介绍了C++中关于[]静态数组和new分配的动态数组的区别分析,很重要的概念,需要的朋友可以参考下 本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加 ...

  4. C++之动态数组

    C99支持一种名为变长数组的结构来方便程序员.C++也提供了一种长度可在程序运行时确定的数组类型:动态数组.声明格式为:(声明 int 类型的数组) ; //此处可修改 ArraySize 的值 in ...

  5. VB默认属性、动态数组、Range对象的默认属性的一点不成熟的想法

    1.默认属性 VB6.0有默认属性的特性.当没有给对象指定具体的属性时,"默认属性"是VB6.0将使用的属性.在某些情形下,省略常用属性名,使代码更为精简. 因为CommandBu ...

  6. C#有关数组内存的释放及动态数组问题

    一.数组内存释放问题 数组内存的释放可以按照如下语句实现: string [] aa=new string[2]; aa[0]="A"; aa[1]="B"; ...

  7. (待续)C#语言中的动态数组(ArrayList)模拟常用页面置换算法(FIFO、LRU、Optimal)

    目录 00 简介 01 算法概述 02 公用方法与变量解释 03 先进先出置换算法(FIFO) 04 最近最久未使用(LRU)算法 05 最佳置换算法(OPT) 00 简介 页面置换算法主要是记录内存 ...

  8. C++ 动态数组实例

    一维动态数组的实例: #include <iostream> using namespace std; int main() { int *arr; int n; cout<< ...

  9. C++动态数组

    一: 一维数组初始化 标准方式1:int value[100]; //value[i]的值不定,因为没有初始化:标准方式2:int value[100] = {1,2,3}; //value[0],v ...

随机推荐

  1. 统计学习方法三:K近邻

    一.什么是K近邻? K近邻是一种基本的分类和回归方法. 在分类时,对新的实例,根据其K个最近邻的训练实例的类别,通过多数表决权等方式预测其类别. 通俗的讲,找K个和其关系最近的邻居,哪个类别的邻居多, ...

  2. Linux环境Nginx安装、调试以及PHP安装

    linux版本:64位CentOS 6.4 Nginx版本:nginx1.8.0 php版本:php5.5 1.编译安装Nginx 官网:http://wiki.nginx.org/Install 下 ...

  3. 欧拉回路&欧拉通路判断

    欧拉回路:图G,若存在一条路,经过G中每条边有且仅有一次,称这条路为欧拉路,如果存在一条回路经过G每条边有且仅有一次, 称这条回路为欧拉回路.具有欧拉回路的图成为欧拉图. 判断欧拉通路是否存在的方法 ...

  4. HDU 4370 0 or 1(spfa+思维建图+计算最小环)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4370 题目大意:有一个n*n的矩阵Cij(1<=i,j<=n),要找到矩阵Xij(i< ...

  5. Nginx 502错误:upstream sent too big header while reading response header from upstream

    原因: 在使用Shiro的rememberMe功能时,服务器返回response的header部分过大导致. 解决方法: https://stackoverflow.com/questions/238 ...

  6. sin()函数的实现

    计算如下公式,并输出结果: 其中r.s的值由键盘输入.sin x的近似值按如下公式计算,计算精度为10-10: 程序说明: #include <math.h>和#include<cm ...

  7. js中post中文参数转码和解码

    作为基础知识和血淋林的教训,前端一定要记得post请求时将参数中带有中文的部分进行转码!! var str='宋宇·特弱夫斯基'; //转码: encodeURI(encodeURI(str)) ; ...

  8. 七 使用list和tuple

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  9. 【C#】字段总结

    前沿: 字段(field)是一种数据成员,其中容纳了一个值类型的实例或者一个引用类型的引用. 正文: CLR支持类型(静态)字段和实例(非静态)字段.对于类型字段,用于容纳字段数据的动态内存是在类型对 ...

  10. 不通过注册表使用ActiveX对象

    为了弄清楚COM库的运行原理,特意做了这个实验: #include "stdafx.h" #include "objbase.h" #include " ...