關於引數的傳遞

2021-08-10 03:06:47 字數 792 閱讀 1559

解釋引數在方法中的傳遞過程,並通過記憶體解析圖的 方式,描繪出方法執行時記憶體的變化。

可以使用今天課堂**來解釋

public

class demo11

}public

static

void

main(string args)

}

此方法最後的輸出是:

fun1-i:15

fun1-j:25

main-i:10

main-j:20

理解:當**執行到int i = 10;int j = 20;時,相當於在棧區內開闢了一塊空間來儲存這兩個值,因此執行system.out.println(「main-i:」 + i); system.out.println(「main-j:」 + j);這兩個語句時,相當於直接呼叫棧區的這兩個值。而其後到fun1()方法時,相當於把i,j的值呼叫過去,然後在棧區開闢心的空間來儲存新的值,這個值與原來的從而fun輸出的值是新值15,25;

public class demo11 

public static void main(string args)

} class p

解釋:這個屬於引用型別的資料傳遞。p p = new p()可以理解為,在堆區開闢一片空間用來儲存定義值得位址。當p.i=10;p.j=20;時,堆區記憶體中被賦予i=i;j=20;當執行到p.i+5和p.j+5時,堆區內重新開闢一塊空間用來儲存p.i+5和p.j+5的值。因此,輸出p.ihep.j的值,是10和20;

關於 final 的引數傳遞

考題題幹 在下面程式標明的位置處插入哪條語句會導致編譯錯誤?public class finaluse final int n use x,y,z,n static void use final int x,int y,final int z,int n 請考慮下面的選項 a x b y c y x...

ESP,EBP 彙編關於引數的傳遞

參考了羅雲斌的一篇文章,很清晰 子程式如何訪問引數 因為預設對堆疊操作的暫存器有 esp 和 ebp,而 esp是堆疊指標,無法暫借使用,所以一般使用 ebp 來訪問堆疊,假定在乙個呼叫中有兩個引數,而且在 push 第乙個引數前的堆疊指標 esp 為 x,那麼壓入兩個引數後的 esp 為 x 8,...

關於指標傳遞引數的理解

學習c語言至今,已經到了乙個瓶頸,難度大多來自於指標和指標的引數傳遞。指標分為一維指標 多維指標 函式指標 指標陣列 陣列指標等等 其中主要我們要了解的是一維指標和指標陣列 陣列指標。include include void allocate memory for two array int plo...