C 的引數傳遞,一道面試題

2021-06-08 06:32:21 字數 1080 閱讀 4705

1.定義乙個類mpigeon,呼叫乙個swap互動函式,問最後實參的結果是什麼

-----------類定義------------------

public class mpigeon}

----------交換函式---------------

public void swap(object a,object b)

----------測試**---------------

private void button2_click(object sender, eventargs e)

;mpigeon b = new mpigeon() ;

swap(a, b);

string resultmsg = string.format("a:,b:", a.name, b.name);

messagebox.show(resultmsg);

}----------結果顯示---------------

----------結果分析---------------

由於實參變數和形參變數都是引用型別,它們都指向記憶體堆中的某一物件的位址,

函式是將實參變數指向的位址值複製了乙份給形參變數,由於形參變數和實參變數指向堆中同一位址

由於是複製了乙份,所以實參的位址在swap函式中是沒有被改變的,所以最後輸出的結果,實參的值和原來是完全一樣的

(注意:swap函式只是互動了一下形參的位址而已,而沒有改變它們的值,如果改變了值,那實參的值也會跟著改變)

例如:public void swap2(object a, object b)

{((mpigeon)a).name = "ronaldo";

((mpigeon)b).name = "rivaldo";

一道c 面試題

float a 1.0f cout int a endl cout int a endl int a 是什麼意思?cout boolalpha int a int a endl float b 0.0f cout int b endl cout int b endl cout boolalpha i...

一道面試題

一道面試題 射擊運動員10發打中90環有多少種可能,請編寫程式計算出來,並列印出結果,0環和10環均有效。打中90環就是沒打中10環,所以打中90環跟打中10環的可能性是一樣的。然後開始遞迴狂打槍,一到10就記錄 if params i 10 在迴圈的控制中已經排除了大於10的可能性 i 10 pa...

一道面試題

前些時候在找工作,就在準備結束此次找工作歷程的時候,去了一家公司面試,去了之後技術經理直接帶到一台電腦旁,給了一張紙條,上面是這樣的題目 用c或c 來實現 1 建立一棵樹,該樹的深度是隨機的,每個節點的位元組點數是隨機的。2 給每個節點分配一段隨機大小的記憶體空間,給每個節點賦乙個隨機數。3 遍歷這...