vb大神來解釋下為什麼最終答案會是那個

2022-03-28 03:35:31 字數 1117 閱讀 7704

1樓:babyfans隆哥

我把你的**複製下來自己測試了一下,結果是1010,把ff函式x引數前面的byval去掉後,結果是2010,在y引數前面加上byval則輸出1020。

現在解釋一下輸出2010的情況,前面初始化部分就不多說了

call ff(a,b) '呼叫ff函式並把a值傳遞給x,b值傳遞給y,注意此時傳遞的是實體地址,也就是說如果x,y的值改變,那麼a,b的值也會改變

z=x:x=y:y=z '可以拆解為為下面三行

z=x '把x值賦值給z,此時z=10,x=10,y=20相當於a=10,b=20

x=y '把y值賦值給x,此時z=10,x=20,y=20相當於a=20,b=20

y=z '把z值賦值給y,此時z=10,x=20,y=10相當於a=20,b=10

ff函式結束。

print a,b '列印a和b也就是2010。

另外byval的意思是按值傳遞,意思是說傳遞的只是原變數的一個副本,在函式內改變這個副本的值並不會對原變數產生影響。

感謝閱讀,如果有幫助的話還望採納

2樓:匿名使用者

最終答案說是:20 10,那肯定是錯了,是書本錯誤???

按照你的這個程式結果是:10 10

vb自定義過程中由 byval 引導的形式引數按照傳值方式傳遞,而由 byref 引導的形式引數按照傳址方式傳遞。當省略引導的時候系統預設規定為就是byref方式。

所以: call ff(a, b) 呼叫 ff(byval x as integer, y as integer),把a的值傳遞給x,把b的地址傳遞給y。

結果:a不變,b等於y

分析過程內部**,就是變數x 與 y 交換值,所以:

x = 20

y = 10

所以;a = 10,b = 10

3樓:

y的變數申明前面沒有加byval預設的就是byref,byref是按地址傳遞的,所以b和y這個兩變數指向的用來存放資料的記憶體地址是一樣的,所以b和y是相等的y只是b的別名

一道數學題,答案選c,幫忙解釋一下為什麼,寫出解題過程,謝謝

a b 2 ab a b 2 5ab 因為ab 0所以 ab 0 二式相比 a b a b 2 1 5 所以a b a b 答案c 一道數學題,講一下過程,謝謝。20 40 70 25 20 1 80 40 520 p 她共獲得利潤520pp 滿意望採納,謝謝!就是用幾個正方體,像搭積木一樣 解 2...

解釋一下,為什麼善良比聰明更重要

沒聽過聰明反被聰明誤嗎?善良的人沒有心機,不會勾心鬥角,不會計較,聰明的人會以自身利益為中心 善良的人不會做壞來 事,因為他懷揣源一顆善心。bai 但是,聰明的人就會du懂得製造zhi各種黑科技,或者有時dao候聰明用在不恰當的地方,就會害人害己,因為他被自己的聰明所矇蔽,就會忽視道德的存在,忘了什...

為什麼手指放在手機上有哈氣,解釋一下,為什麼冬天給手上 哈氣 會感到熱

應該是螢幕自身有邊緣擴大的縫隙,這個原因不敢確定,沒準從一次不經意的磕碰開始的 這種沒法恢復的硬傷只能去售後維護了估計換屏成本在400價位。如果你自己動手能力強,可以去官方售後檢測確定問題後,自己買匹配螢幕換一下,這樣成本很低,一般也就一百多。售後貴主要是人工費用要價太猛 因為你的手的溫度一般有30...