關於VB的傳值與傳地址的一道考題

2022-10-06 20:05:38 字數 662 閱讀 4951

1樓:匿名使用者

這很簡單,首先我們可以看到,過程p2定義的所有引數傳遞方式都為傳值,因為每個引數前面都使用了byval關鍵字。所以過程p2的執行與否均不會影響到變數x和y的值,因此我們可以將過程p2視為不存在。

接下來我們可以看到,過程p1定義的所有引數和過程p3定義的a引數均為傳址方式,這兩個過程的執行均可能會對變數x和y的原始值造成影響。

首先我們看過程p1執行後x和y的值是多少。由於過程p1的引數都是傳址方式,所以p1中的變數a也就代表x,b代表y。p1執行後a(也就是x)的值為30,b(也就是y)的值為10。

也就是說,過程p1執行後x和y的值分別是30和10。

當執行過程p3時,x的值30傳遞給p3的引數a,y的值10傳遞給p3的引數b。很明顯,p3過程中的**a=a+b相當於a=30+10,所以a的值自然等於40,同時由於引數a為傳址方式,所以a的值也就是x的值,為40。p3中的引數b為傳值方式,它接收y傳來的值10,但並不會影響到y的值,所以y的值仍保持為10。

2樓:匿名使用者

執行後是x=30,y=20,這是我測試的實際結果x=a=10+20,因為是傳遞地址,a也改變,a=30y=b=a-b=30-20=10,因為只是傳遞值,y沒有改變,保持原值20

執行後a=30,b=10

x=30,y=20

VB傳值的問題,VB中關於傳值和傳地址的問題?

上半部分和問題都不是一個型別的 上半部分是傳值和傳址的問題。加上byval是傳值 private function fun byval x as integer,byval y as single 執行過程中不會改變原來的引數值,傳遞的只是一個備份。比如。x 3,y 4 fun x,y 然後執行時候...

一道VB的題目,求助大家啊

a 1 為什麼是假?boolean變數初始值是假。進行了for迴圈後怎麼判斷的?判斷如果a i 為假,則賦值為真,並且退出for迴圈。j 為什麼是1?j 是integer型變數,初始值是0 j 0 1 1 程式中,第一次判斷if a i false then,在之前未曾對a i 進行過賦值,所示系統...

一道關於dna複製的題,一道關於DNA複製的題

1.完全標記,dna分子的兩條鏈上都有標記 2.半保留複製,就是dna分子複製一次,產生的兩個dna分子中各有一條鏈來自母dna分子。完全標記bai 是指由 脫氧核糖核苷du酸 的單體聚合而成zhidna分子雙鏈dao全被被同位素標記版,因為蛋白質中一權般不含p元素,所以多用p的同位素標記。半保留複...