CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

VB:这些不同形式的变量声明语句意义一样的吗?

楼主ldxm8848(*梦幻女孩*)2004-09-01 16:52:35 在 VB / 基础类 提问

大家好:  
          请问以下的不同形式的变量声明语句功能和意义是一样的吗?如果不是,又有什么不同?  
  dim(或static或private或Public)a,b,c   as   integer  
  和  
  dim(或static或private或Public)   a   as   integer  
  dim(或static或private或Public)   b   as   integer  
  dim(或static或private或Public)   c   as   integer  
  是一样的吗?  
  ---------  
  还有,defsng   a这句语句定义的变量a是不是单精度型啊?  
  defsng   a和   dim(static|private|Public)   a   as   integer有什么不同?  
  原来定义单精度变量还有这么简单的形式啊?  
  请问还有其它的数据类型变量像这样简单的定义形式吗?可以告诉我吗?  
  ----  
  谢谢各位的赐教! 问题点数:0、回复次数:7Top

1 楼ttcat(一颗流星)回复于 2004-09-01 17:01:50 得分 0

dim(或static或private或Public)a,b,c   as   integer  
  这是vb.net中的声明方法,在vb6中是不允许的。  
  实际上一回事。Top

2 楼ttcat(一颗流星)回复于 2004-09-01 17:04:52 得分 0

vb.net中定义的都很简单,vb   6.0中则要复杂很多阿。Top

3 楼zyg0(影子(被评为本年度最可爱流氓)回复于 2004-09-01 17:11:16 得分 0

static静态变量   只能给1次值,一般用在常数上  
  private私有变量   在本窗体或者类中可以调用,其他类或窗体不能调用  
  Public公有变量(默认)   声明在模块中就是程序的全局变量  
   
  dim   a,b,c   as   integer  
  和  
  dim   a   as   integer  
  dim   b   as   integer  
  dim   c   as   integer  
  是一样的吗?  
  不一样,因为上面的a和b没有声明类型,因此系统会默认a,b是变体型  
  如果想一样就这样写  
   
  dim   a   as   integer,b   as   integer,c   as   integer  
   
   
   
  Top

4 楼ldxm8848(*梦幻女孩*)回复于 2004-09-03 22:20:15 得分 0

谢谢各位大侠赐教!Top

5 楼renjunjun(飞黄)回复于 2004-09-03 22:28:58 得分 0

不一样,在VB6中dim   a,b,c   as   integer的定义方式下,只有C是整型,其它的A,B被定义为默认的Variant型.Top

6 楼difa(中原)回复于 2004-09-03 22:31:53 得分 0

同意zyg0(),upTop

7 楼BlueBeer(1win)回复于 2004-09-04 03:19:17 得分 0

//static静态变量   只能给1次值,一般用在常数上  
   
  这个好像有误吧  
   
  用static定义的变量跟用dim定义的基本相同,主要的区别有两个,一个是static只能用于定义过程级别的变量,二个是static变量的生存期不随所在过程的结束而终结,它的生存期将延续到程序退出的一刻,也就是说直到退出程序,static变量才会被销毁(放弃其内存占用)  
   
  说的不太清楚,呵呵,看个小例子吧  
   
  sub   command1_click()  
          dim   test   as   long  
          test=test+1  
          msgbox   test  
  end   sub  
   
  放个commandbutton在窗体上  
  从dim一句开始看,这一句定义了一个长整型变量test,在给它赋值前,它的值为0  
  下一句给test赋值test+1,也就是0+1  
  再下一句用消息框显示test的值  
  按F5运行,按command1并且不管你按多少次,消息框都永远只显示1(即0+1),为什么,因为每一次执行到end   sub时,变量test就被销毁了,再按一次,dim语句都将定义一个全新的变量,每一次的test虽然同在一个过程,也拥有完全相同的变量名,但从严格意义上讲,它们已经不是同一个变量了  
   
  同一段代码,你把上面的dim换成static再运行试一试,每按一次command1,消息框显示的test的值都累加1,这是因为static定义的变量只在第一次被执行时分配给变量内存空间,它的内存地址在程序退出前都不会被改变(dim语句定义的有可能会改变),哪怕它所在的窗体已经被unload,所以说它的生存期与程序的生存期相同,而不像dim变量生存期只在过程内部,过程执行结束,变量也将不再生存  
   
  另外,需要注意的是,虽然static变量的生存期看起来很像public变量,但它们是有本质区别的,public是名符其实的公用变量,而static变量仍然是私有的,它只属于所在的过程,在过程外部是无法访问它的Top

相关问题

  • vb中sql语句引用变量该如何写?
  • SQL语句接收不到VB所给的变量
  • VB中SQL语句中运用变量的写作格式?
  • 如何组织一sql语句的变量,在VB里写一插入数据的sql语句。
  • 求助:vb的SQL语句中加入一个数字型变量的方法。
  • VB+SQL Server 2000如何用Insert 语句用数字型变量给数字型字段赋值?
  • select 语句中变量赋值问题
  • SQL语句中怎样使用变量?
  • 怎样把变量代进SQL语句
  • 一个带变量的JS语句

关键词

  • vb.net
  • vb6
  • 语句
  • vb
  • 变量
  • integerdim
  • 定义
  • 窗体
  • 形式
  • 默认

得分解答快速导航

  • 帖主:ldxm8848

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo