傳值是什麼意思

在程式設計中,「傳值(passing by value)」是一種函數參數傳遞的方式。當使用傳值的方式時,函數會建立一個新的變數,這個變數是參數的一個副本。任何對這個副本所做的更改都不會影響原始變數的值。

舉個例子,假設我們有一個函數 func,它接受一個參數 x,並且將 x 的值增加 1。如果我們使用傳值的方式來傳遞參數,那麼函數 func 中的 x 變數是 x 的副本,而不是 x 本身。當 func 執行完畢時,x 的值會增加 1,但是原始的 x 值並不會改變。

以下是一個使用傳值方式的例子:

def func(x):
    x += 1
    print("x inside func is", x)

# 原始的 x 值
x = 5
print("x before calling func is", x)

# 呼叫 func 並傳遞 x 的副本
func(x)

# 檢查原始的 x 值是否改變
print("x after calling func is", x)

執行這個程式會輸出:

x before calling func is 5
x inside func is 6
x after calling func is 5

如上所示,func 中的 x 變數是 x 的副本,增加 x 的值並不會影響原始的 x

另一種常見的傳遞方式是「傳引用(passing by reference)」,這時候函數參數會直接指向原始變數,任何對參數的更改都會直接影響原始變數的值。不同的程式語言對傳值和傳引用的支持程度不同,有些語言(如 Python)會自動決定使用哪種方式,而有些語言(如 C++)則需要開發者明確指定。