回覆列表
  • 1 # 小紅的甜心

    實參(被調)、行參(主調)

      函式呼叫中發生的資料傳送是單向的。即只能把實參的值傳送給形參,而不能把形參的值反向地傳送給實參。 因此在函式呼叫過程中,形參的值發生改變,而實參中的值不會變化。

      --傳值:

      是把實參的值賦值給行參,相當於複製一塊同樣的空間那麼對行參的修改,不會影響實參的值

      --傳地址:

      是傳值的一種特殊方式,只是他傳遞的是地址,不是普通的如int那麼傳地址以後,實參和行參都指向同一個物件--傳引用:

      真正的以地址的方式傳遞引數

      傳遞以後,行參和實參都是同一個物件,只是他們名字不同而已對行參的修改將影響實參的值

      即傳址時只需在函式呼叫時在引數的前面加上"&"號即可。將函式外部的值的記憶體地址傳遞給內部的引數,在函式內部的所有操作都會改變函式外部引數的值。

      值傳遞(passl-by-value): 壓棧的是引數的副本。任何的修改是在副本上作用,沒有作用在原來的變數上。

      過程中:被調函式的形式引數作為被調函式的區域性變數處理,即在堆疊中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的一個副本。值傳遞的特點是被調函式對形式引數的任何操作都是作為區域性變數進行,不會影響主調函式的實參變數的值。

      傳指標(pointer): 壓棧的是指標變數的副本。當你對指標解指標操作時,其值是指向原來的那個變數,所以對原來變數操作。

      引用傳遞(pass-by-reference):壓棧的是引用的副本。由於引用是指向某個變數的,對引用的操作其實就是對他指向的變數的操作。

      過程中:被調函式的形式引數雖然也作為區域性變數在堆疊中開闢了記憶體空間,但是這時存放的是由主調函式放進來的實參變數的地址。被調函式對形參的任何操作都被處理成間接定址,即透過堆疊中存放的地址訪問主調函式中的實參變數。正因為如此,被調函式對形參做的任何操作都影響了主調函式中的實參變數。

      所謂值傳遞,就是說僅將物件的值傳遞給目標物件,就相當於copy;系統將為目標物件重新開闢一個完全相同的記憶體空間。

      所謂引用,就是說將物件在記憶體中的地址傳遞給目標物件,就相當於使目標物件和原始物件對應同一個記憶體儲存空間。如果對目標物件進行修改,記憶體中的資料也會改變。

  • 2 # 使用者2195486961218

    1。傳址為了在執行函式的同時,同時改變函式引數值,而傳值不期望改變。

    2。$i.,PHP中的(.)是字元竄連線符號,意思是說把$i程式碼的字元竄與字元竄""連線起來,一起輸出,在HTML中,是一個換行符。。。

    3。另一個複製在記憶體裡頭,函式執行完畢,就銷燬了。

    4。把書的那幾頁撕掉。

    對傳值,傳址,函式均無影響,對中國計劃生育也無影響,只是打印出一個,使輸出結果換行,你可在傳址函式也加上

  • 中秋節和大豐收的關聯?
  • 人類對宇宙的認知能力是有限的還是無限的?