-
我認為chixun9999的解釋是最接近事實的。 但他表示,子程式收到的(a)論點10是值得商榷的。
對於 byref 引數,正確的理解是 form 引數是實數引數的別名,也就是說,如果沒有括號(),x 得到 a 的位址,並且它們對應的是同乙個記憶體段,所以在多重程序中 x=x*2 實際上是在做 a=a*2,並且沒有返回值給 a! 注意:只要你明白 x 和 a 對應的是同一塊記憶體,你應該同意我的判斷。
至於(a)作為實際論證,(a)是表示式不再是a本身,(a)的結果10不再儲存在a的記憶體段中,所以x接收到的位址不是a的位址,而是表示式結果10暫時使用的記憶體位址。
事實上,只要引數不是純變數,byref 就失去了意義。 例如,如果將 a*1 和 a 1 用作引數,則結果與 (a) 相同。 這個問題有點意思,大家一起討論吧!
-
a)作為表示式,將引數的值傳遞給多程式後,使子程式條目的x值為10;但是,在將 x=x*2 重新分配給 x 後,子例程無法將重新分配的值返回給括號中的 a,因為 (a) 被視為計算
-
Byref 按位址傳遞,a 的值不會改變。
-
該引數 a 有乙個額外的括號,應該寫出來。
call mult(a, b)
-
b、原因比較多,打得有點慢,你等一會兒。
a:sub 語句過程的呼叫是乙個獨立的語句,可以用 call 或省略 call 的過程名稱直接呼叫,函式程序可以用 call 呼叫(但會失去函式的意義)。
c:函式程序名應該返回乙個值,所以有乙個型別宣告; 子過程名稱不需要型別宣告。
d:函式程序名稱兼作結果變數,因此函式程序名稱在函式過程體中至少分配一次; 不能將子過程名稱分配給函式過程體。
-
以下約定適用於在 VB 中呼叫 sub:
1) 呼叫 if 時,過程的 if 引數列表用 () 括起來。
2)呼叫時,如果不使用call,引數列表一定不能使用()a和c違反第二條規則,正確的寫法是:
s c,b,a
s , 100+c
-
在mid(right(ch$,6),len(left(ch$,4)),2)中,len(left(ch$,4))的值是4,所以這個**很囉嗦:它的意思是取乙個字串左邊的四個字元是什麼,然後找出它有多少個字元,取四個字元,當然結果是四個字元"aabc"。所以原來的**:
mid(right(ch$,6),len(left(ch$,4)),2)
它可以簡化為:
mid(right(ch$,6),4,2) .
這意味著從原始字串的右側截斷了 6 個字元"cdefgh",然後從這 6 個字元的第四個字元中擷取 2 個字元"fg",即第四和第五個字元。
結果輸出:fg
張志琛轉述道。
-
在每個週期結束時,x 和 i 的值分別為 。
1 1(之後,因為i=1小於5,所以繼續下乙個迴圈,i步驟1所以加1,i是2時下乙個迴圈開始,下同)。
2 33 6 出圈。
讓我們從程式開始:
不知道大家有沒有注意到,當你第一次輸入函式p1的時候,你沒有給y賦值,那麼y的值就是0,也就是y=0; >>>More