| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 909 人关注过本帖
标题:菜鸟问一个选择题
只看楼主 加入收藏
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:7 
菜鸟问一个选择题
下列有关过程的说法中,错误的是
 A.在Sub或Function过程内部不能再定义其它Sub或Function过程
B.对于使用ByRef说明的形参,在过程调用时形参和实参只能按传址方式结合
C.递归过程既可以是递归Function过程,也可以是递归Sub过程
D.可以像调用Sub过程一样使用Call语句调用Function过程

希望给出详解,尤其是B,本人纯种菜鸟,谢谢
搜索更多相关主题的帖子: 选择 
2010-06-20 18:50
jiashie
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:237
专家分:999
注 册:2009-4-30
收藏
得分:10 
汗,看不出哪个是错的。
2010-06-21 02:59
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
回复 2楼 jiashie
这是去年江苏的二级题,答案是B
2010-06-21 10:02
jiashie
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:237
专家分:999
注 册:2009-4-30
收藏
得分:0 
经你这么一提示,我想起了在vb中调用copyMemory这个API函数时
Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (pDest As Any, pSrc As Any, ByVal ByteLen As Long)
API的声明中为byref,但在调用时却可以用byval来表示传递的是地址值,不需要再费心去取变量的地址了。
暂时只想到这么一个例外的情况,在vb中自己写的函数貌似确实是“对于使用ByRef说明的形参,在过程调用时形参和实参只能按传址方式结合”
没想到2级vb考试居然还考api ??

[ 本帖最后由 jiashie 于 2010-6-21 10:33 编辑 ]
2010-06-21 10:29
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
回复 4楼 jiashie
不懂,你是说调用函数是在参数列表里写byvalue吗
像是a = sum(x,byvalue y)
对于使用ByRef说明的形参,在过程调用时形参和实参只能按传址方式结合,如何不按传地址方式结合呢?
2010-06-21 12:48
jiashie
Rank: 8Rank: 8
等 级:贵宾
威 望:10
帖 子:237
专家分:999
注 册:2009-4-30
收藏
得分:0 
不是说“不按传地址方式结合”,而是在用copymemory这个API函数时,可以使用byval,也可以不使用byval,只是对传入的参数的解释方式不同而已,估计vb在编译时悄悄地帮我们做了一些工作。

Sub SwapPtr(sA As String, sB As String)
 Dim lTmp As Long
 CopyMemory lTmp, ByVal VarPtr(sA), 4
 CopyMemory ByVal VarPtr(sA), ByVal VarPtr(sB), 4
 CopyMemory ByVal VarPtr(sB), lTmp, 4
End Sub
一般自己写的函数我还没见到过“明明声明为byref,但调用时却用byval的”。这样做会出现编译错误“类型不匹配”
2010-06-21 14:31
heartnheart
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:335
专家分:1096
注 册:2009-7-10
收藏
得分:0 
回复 7楼 jiashie
似懂非懂,先这样吧……VB就看了一天,他再有不懂的我再发帖子咯,反正你在,O(∩_∩)O~
2010-06-21 16:08
快速回复:菜鸟问一个选择题
数据加载中...
 
   



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

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