金币 射速快火炮:很简单的程序问题

来源:百度文库 编辑:高考问答 时间:2024/04/28 04:19:59
function aa(bb)
bb=0
end function
cc=1
call aa(cc)
运行之后,cc的值为多少?
我也觉得应该是1。可不知道,今天为了这点小东西,搞得头都大了,它就是不为1。而它的值跟着bb在变。很郁闷

不是啊,运行结果是1 啊,,,兄弟们

结束之后cc应该为0
应为在你调用aa的时候,参数默认是传址的,也就是说bb=0使得cc也=0了

你可以试试把function aa(bb) 改成function aa(byref bb)或者function aa(byval bb),再看看结果。前者传址cc为0,后者传值cc=1

PS:楼上搞错了,“函数参数一般为传值”
函数参数默认是传址的

CC是全局变量,只用作参数调用一次,没有改动其值
函数参数一般为传值高做,要是传址就会在调用的函数里改其原参数值。结束后,CC值为1