24. Procedure Modify 定義如下: procedure Modify (Y) Begin print the value of X; Y = 9; print the value of Y; End 假設X 是global variable,如果Modify 是call by reference,請問執行下列程式片段,會印出何值?(此三值以分號隔 開。) X = 5; Modify (X); print the value of X;
(A) 9;9;9
(B) 5;9;9
(C) 5;9;5
(D) 5;5;5

答案:登入後查看
統計: A(5), B(51), C(40), D(11), E(0) #91972

詳解 (共 2 筆)

#317756

global variable全域變數: 於程式編譯之後就存在一直到程式的結束才消失,其使用範圍為自檔案的宣告或定義處開始至檔案的結束,其名稱於一個檔案也必須是唯一的。缺點是因global variable的特性,函數的呼叫會改變函數外變數的值

01  procedure Modify (Y) Begin 
02
03  print the value of X;
04  Y = 9; 
05  print the value of Y; 
06
07  End 
08  X = 5; Modify (X); print the value of X; 

 X
global variable -->結果會是一開始設定的5 ∴第03行時,列印出來的值是5
 在第04行時Y給值=9 會牽涉到兩件事
1) Modify
call by reference-->存放Y變數的記憶體值被改成9

2)08 Modify (X)的值因為call 01 Modify (Y),所以global variable X的值就會因為Modify (Y)Y,而使global variable變數X的值改成了9
 所以印出來的結果就是
5;9;9;

5
0
#274454

這題怎麼解阿??
0
0