|
在百度里见到一道很有意思的编程题,先贴上两段代码代码给大家练练:
第一段代码:返回值是什么?
- Dim a As Integer
- Sub test()
- Dim b As Integer
- a = 1
- b = 2
- Debug.Print fun1(fun1(a, b), b)
- Debug.Print a
- Debug.Print b
- End Sub
- Function fun1(x As Integer, y As Integer) As Integer
- Dim i As Integer
- For i = 1 To y
- y = y + 1
- x = x + 1
- a = x + y
- Next i
- fun1 = a + y
- End Function
复制代码
第二段代码:和上面的代码相比,只是加了“ByVal”关键字,返回结果还是一样吗?
- Dim a As Integer
- Sub test()
- Dim b As Integer
- a = 1
- b = 2
- Debug.Print fun1(fun1(a, b), b)
- Debug.Print a
- Debug.Print b
- End Sub
- Function fun1(ByVal x As Integer, ByVal y As Integer) As Integer
- Dim i As Integer
- For i = 1 To y
- y = y + 1
- x = x + 1
- a = x + y
- Next i
- fun1 = a + y
- End Function
复制代码
公共变量的影响:
问题3:对第一段代码删除 Dim a As Integer,并把参数(x As Integer, y As Integer)改为:(x,y)【注】会有怎样的结果呢?
问题4:对于第二段代码同样删除这句公共变量,又会有怎样的结果呢?
答案嘛,大家可以在模块的立即窗口(Ctrl+G)中得到,实在不清楚的再问我。为什么会这样。由于时间关系,我得稍后一些时间才能回复了,先占个楼层。
【注:由于删除公共变量,x,y均为缺省变量类型Variant。如果仍保留子函数中的Integer类型,则会在传址过程中出现变量不匹配的编译错误,因而需要改为(x,y)】
【新手入门】之一:If分支语句
【新手入门】之二:分支语句总结
【新手入门】之三:循环语句For
【新手入门】之四:循环语句Do和死循环
【新手入门】之五:公共变量与传址过程、传值过程
【新手入门】之六:“悲欢离合总无情”——浅谈Split和Join
【新手入门】之七:嵌套与并列——再谈If流程问题
【新手入门】之八:“连就连”——浅谈“&”和“+”连接符的区别
【新手入门】之九:从百钱百鸡谈起——浅谈“规划求解”兼答lingjiang问
【新手入门】之十:书到用时方恨少——自定义菜单(Access 2003)的制作
【新手入门】之十一:浅谈ADO之序言
【新手入门】之十二:浅谈ADO之Connection
【新手入门】之十三:浅谈ADO之Conmmand(上)
【新手入门】之十四:浅谈ADO之Command(下)
【新手入门】之十五:浅谈ADO之Recordset(上)
【新手入门】之十六:浅谈ADO之Recordset(下)
【新手入门】之十七:浅谈列表框的使用
【新手入门】之十八:双击列表框修改数据
【新手入门】之十九:从“书与女友恕不外借”谈起——浅谈“Bookmark”的使用
【新手入门】之二十:“书与书签”——bookmark属性答疑
【新手入门】之二十一:记录集的“凌迟”——逐条导出记录集
【新手进阶】之一:基础算法(一)
【新手进阶】之二:基础算法(二)
【新手进阶】之三:基础算法(三)
【新手进阶】之四:基础算法(四)
【新手进阶】之五:排序搜索(一)
【新手进阶】之六:排序搜索(二)
【新手进阶】之七:递归算法
【新手进阶】之八:冒泡排序
【新手进阶】之九:浅谈不绑定数据源操作记录
【新手进阶】之十:工作日的计算
【新手进阶】之十一:“庖丁解牛”和“纪昌学射”——浅谈表格式文本数据的导入
【新手进阶】之十二:从四脚腾空的奔马谈起——原来界面可以这样设计
【新手进阶】之十三:Outlook风格导航界面
【新手进阶】之十四:仓库管理系统 |
|