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
統計: 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