在编程中,变量是一个用于存储数据值的命名容器。
一、作用
变量使得程序员能够在程序运行过程中存储和操作各种数据。它就像是一个可以随时存取物品的盒子,你可以把不同类型的数据放进去,也可以随时取出查看或修改。比如在一个记录学生成绩的程序中,可以用变量来存储学生的姓名、分数等信息。
二、特点
- 变量需要有一个唯一的名称,以便在程序中识别和引用它。变量名通常由字母、数字和下划线组成,但不能以数字开头。例如,“score”“student_name” 都是合法的变量名。
- 存储特定类型的数据,常见的有整数类型、浮点数类型、字符类型、字符串类型等。你必须根据要存储的数据类型来声明变量。比如,如果你要存储一个整数,就可以声明一个整数类型的变量;如果要存储一段文本,就可以使用字符串类型的变量。
- 可以被修改,在程序运行过程中,变量的值可以根据程序的逻辑进行修改。例如,在一个计数器程序中,变量可以随着计数的增加而不断改变其值。
三、声明和赋值
在大多数编程语言中,使用变量之前需要先进行声明。声明变量包括指定变量的类型和名称。
声明后,可以给变量赋值。赋值操作是将一个具体的值存储到变量中。
四、变量的作用域
变量的作用域指的是变量在程序中可以被访问的范围。一般来说,变量可以在声明它的代码块(如函数、循环等)内被访问。超出这个范围,变量就不可见了。例如,在一个函数内部声明的变量,通常只能在该函数内部使用,在函数外部无法访问。
变量是编程中非常重要的概念,它为程序员提供了一种灵活、方便的数据存储和操作方式。
变量声明
变量使用前,必须先声明,以下是声明一个名为:aa 的变量,类型为 Long (32位整数)
Dim aa As Long
声明变量时,可以设置默认值,如果没设置,表示为 0
Dim aa As Long = 100
一行声明中,可以声明多个变量,中间用 “,” 分割,变量类型可以各不相同
Dim aa As Long ,bb As Long,cc As Single
当变量类型相同,可以简化代码,以下是同类型声明
Dim As Long aa,bb,cc,ee
同类型声明,当然也可以设置默认值
Dim As Long aa,bb=100,cc=111,ee
还可以声明数组,数组分固定数组和动态数组
Dim aa(100) As Long '此为固定数组,默认从 0开始。 代码执行时,不可以改变数组
Dim bb() As Long ‘此为动态数组,代码执行时,随时改变数组大小。
redim bb(55) '为动态数组设置数组大小,原先内容被清除为0
redim Preserve bb(55) '为动态数组设置数组大小,原先内容被保留
数组,还可以设置 上标和下标
Dim aa(10 to 100) As Long '此为固定数组,从 10 开始到 100。 代码执行时,不可以改变数组
Dim bb() As Long ‘此为动态数组,代码执行时,随时改变数组大小。
redim bb( 5 to 55) '为动态数组设置数组大小,原先内容被清除为0
redim Preserve bb( 5 to 55) '为动态数组设置数组大小,原先内容被保留
数组声明时,也可以设置默认值
Dim aa(3) As Long = {111,222,333,444} '需要赋值和空间对应个数
Dim bb(...) As Long = {111,222,333,444,555} '无需对应个数,根据赋值内容,自动设置数组大小
静态变量,Dim 是程序执行后,下次再执行到这里,变量就清空,但静态会被保留。
Static aa as long '和Dim 同样写法,参考Dim ,这里不做阐述,和 Dim 不同的是,Static 声明的变量,执行后,原内容被保留,不会丢失。
也可以用简化写法
DimS aa as long
全局变量,所有地方可以共用,Dim 是局部变量,只用于自己代码块中,跳出此代码块,就消失。
Dim Shared aa As Long ' 这是全局变量,所有代码块中都可以使用,和 Dim 语句同样用法,参考Dim ,这里不做阐述
也可以用简化写法
DimP aa as long
常量声明,执行代码期间不可以修改这个值
Const Red = 12345
Const Black As UInteger = RGB(0, 0, 0)
Const Text = "这是黑色bkgnd上的红色文字。"
数据类型
- 数值类型,可以分为:整数类型和浮点类型
'整数类型,位数表示是二进制的数量,只是个容器,保存数值有限制,假如超出范围就溢出,溢出部分会丢失
Dim a1 As Byte '有符号8位整数 -128 ~ 127 占用内存1个字节
Dim a2 As UByte '无符号8位整数 0 ~ 255 占用内存1个字节
Dim a3 As Short '有符号16位整数 -32768 ~ 32767 占用内存2个字节
Dim a4 As UShort '无符号16位整数 0 ~ 65535 占用内存2个字节
Dim a5 As Long '有符号32位整数 -2147483648 ~ 2147483647 占用内存4个字节
Dim a6 As ULong '无符号32位整数 0 ~ 4294967295 占用内存4个字节
Dim a7 As Integer '有符号32/64位整数 32位软件时是 Long 64位软件时是 LongInt
Dim a8 As UInteger '无符号32/64位整数 32位软件时是 ULong 64位软件时是 ULongInt
Dim a9 As LongInt '有符号64位整数 -9223372036854775808 ~ 9223372036854775807 占用内存8个字节
Dim a10 As ULongInt '无符号64位整数 0 ~ 18446744073709551615 占用内存8个字节
'浮点类型,属于近似值,不是精确数值。数值越大,误差越大。
Dim b1 As Single '32位浮点数,占用内存4个字节 1.401298E-45 ~ 3.402823E+38
Dim b2 As Double '64位浮点数,占用内存8个字节 4.940656458412465E-324 ~ 1.797693134862316E+308
- 字符类型
'说明: * 100 表示空间大小,可以容纳多少个文字,100表示容纳99个文字,最后1个是系统自动补0
Dim aa As ZString * 100 'ASCII 标准编码文字,一个中文会占用2个ASCII码。1个ASCII码1个字节。
aa = "aabb我是文字" '给它超过空间的文字,超过部分会被丢弃。1个中文占2个空间,1个空间1个字节
Dim bb As WString * 100 'Unicode 标准编码文字,不管英文中文占1个UNICODE码。1个UNICODE码2个字节。
bb = "aabb我是文字" '给它超过空间的文字,超过部分会被丢弃。不管中英文都占1个空间,1个空间2个字节
'以上文字,不可以包含为 0 编码,遇到 0编码就截断。
Dim cc As String '默认是ASCII标准编码文字,可以自由容纳任意个文字,其实这个是数据容器,可以包含 0 编码。
cc = "aabb我是文字" '不限制文字个数,受内存限制,超过 1.8G 软件就崩溃。
主:As String 是一个数据容器,默认为ASCII标准编码文字。以后编程中会经常遇到,使用这个类型用来装数据用,而不是文字。
- 用户定义的类型
就是把标准类型组合在一起,成为一个类型组,各个标准类型成为其类型的成员
Type 用户自定义类型名
aa As Long
bb As Single
cc As String
End Type
Dim ee As 用户自定义类型名
ee.aa = 100
ee.bb = 3.14
ee.cc = "文字"
成员中也可以用固定数组,动态数组
Type 用户自定义类型名
aa(10) As Long
bb(any) As Single '动态数组,不可以用 () 而是用 (any)
End Type
Dim ee As 用户自定义类型名
ee.aa(1) = 100
redim ee.bb(11) '分配空间
ee.bb(1) = 3.14
评论一下?