函式中的形參與實參

2021-10-24 21:46:38 字數 676 閱讀 2233

總結了兩個回答關於指標和單量傳入是值傳遞,函式執行後不會改變原來變數值

陣列是取了陣列的首位址相當於傳入的是實參,函式執行後會發生改變寫的非常非常清楚

在普通變數或下標變數作函式引數時,形參變數和實參變數是由編譯系統分配的兩個不同的記憶體單元。在函式呼叫時發生的值傳送是把實參變數的值賦予形參變數。在用陣列名作函式引數時,不是進行值的傳送,即不是把實參陣列的每乙個元素的值都賦予形引數組的各個元素。因為實際上形引數組並不存在,編譯系統不為形引數組分配記憶體。那麼,資料的傳送是如何實現的呢?在我們曾介紹過,陣列名就是陣列的首位址。因此在陣列名作函式引數時所進行的傳送只是位址的傳送,也就是說把實參陣列的首位址賦予形參陣列名。形參陣列名取得該首位址之後,也就等於有了實在的陣列。實際上是形引數組和實參陣列為同一陣列,共同擁有一段記憶體空間。因此當形引數組發生變化時,實參陣列也隨之變化。

一般有兩種傳遞方式:bai1)值傳遞----包括(數值傳遞du,指標傳zhi遞) 2)引用傳遞你問題中的指標傳遞,其實就是dao值傳遞:(下面這個你能看懂麼)

值傳遞的話,形參在函式內只能作為右值,而不能作為左值嗎?
追答

是。

值傳遞就相當於是拷貝,也就是賦值:

如: int a = 10;

int b;

b = a;

函式的形參與實參

函式的引數分為形參 形式引數 和實參 實際引數 形參又分為,位置引數 預設引數 可變引數 關鍵字引數 形參使在定義函式的時候給出的 實參使在呼叫函式的時候給出的 1.位置引數 實參和形參的個數必須保持一致,最好按位置傳參,如果位置部隊硬就指定說明 2.預設引數 形參和實參可以不一致,如果不想使用預設...

函式之形參與實參

def fn a,b,c print a print b print c print x print y print z x 100y 1000z 10000 x,y z 是外界實際存在的值 呼叫函式時,實參可以有常量,變數,表示式或三種組合。在函式的外部不能直接使用函式的形參,原因 函式呼叫完畢後...

形參與實參

形參與實參 函式的形參與實參 引數概念 a abcdef print len a 什麼是形參 def function1 a,b if a b print a else print b 什麼是實參 function1 1,3 引數的傳遞 第一種,最簡單的傳遞 def function a,b if ...