1樓:匿名使用者
值傳遞,是指傳的是資料的副本;
引用傳遞,是指傳遞的是資料的地址。
舉個例子,地址0x00000001處的資料是5那麼,值型別傳遞的是5的副本(當然也是5),而引用傳遞的是地址0x00000001
2樓:笨瓜
值傳遞和引用傳遞最大的區別就是
值傳遞傳遞的是執行緒棧上的資訊的副本
引用傳遞是傳遞的執行緒棧上的資訊的存放地址. 用out和ref關鍵字
3樓:匿名使用者
值傳遞是傳值
引用傳遞 是傳 值所在的地址
4樓:
值傳遞就是在分配了記憶體地址的變數傳給它一個值
引用傳遞就是將記憶體地址傳給其他變數
python的值傳遞和引用傳遞區別,哪些型別值傳遞,哪些是引用傳遞
5樓:育知同創教育
值傳遞僅僅傳遞的是值
引用傳遞,傳遞的是記憶體地址,修改後會改變記憶體地址對應儲存的值。
用陣列來舉例就最清楚了,例如我們定義一個陣列a=;
那麼a[0]=1,a[1]=2。
如果我們把陣列a裡的元素值作為引數傳遞,實際上只是進行了值傳遞,對陣列本身沒有影響
如果我們把 陣列a的指標作為引數傳遞,那麼假如處理的函式就可以直接修改陣列a裡的值。
**例項:(只是寫個大概的邏輯,語法可能有錯誤)main()
;test(a);
printf(a[0]); //此處列印的值是3, 這就是引用傳遞。
}public void test(int b)
c#中 引用引數和輸出引數有什麼不同?他們以什麼方式傳遞?
6樓:
沒什麼太大區別。。
一個用關鍵字ref標示,一個用out標示。
牽扯到資料是引用型別還是值型別。
一般用這兩個關鍵字你是想呼叫一個函式將某個值型別的資料通過一個函式後進行更改。傳out定義的引數進去的時候這個引數在函式內部必須初始化。否則是不能進行編譯的。
ref和out 都是傳遞資料的地址,正因為傳了地址,才能對源資料進行修改。
一般情況下不加ref或者out的時候,傳值型別的資料進去實際上傳進去的是源資料的一個副本,也就是在記憶體中新開闢了一塊空間,這裡面存的值是與源資料相等的,這也就是為什麼在傳值型別資料的時候你如果不用return是無法修改原值的原因。但是你如果用了ref,或者out,這一切問題都解決了,因為他們傳的是地址。
out比起ref來說,還有一個用法就是可以作為多返回值來用,都知道函式只能有一個返回值,c#裡,如果你想讓一個函式有多個返回值,那麼out能很容易解決。
7樓:匿名使用者
引用引數以ref為關鍵字,這種引數是要在呼叫之前就初始化的。這引數一般情況下是從外部向內部傳遞數值的時候使用,對於託管**加ref和不加基本相同,但是對於託管**就有所區別。
輸出引數以out為關鍵字,這種引數不需要輸入確定的值,實際的物件是在方法內部初始化,由方法內部給這種引數賦值。一般是呼叫該方法之後,需要方法輸出一些資料的時候使用。因為有時候方法的返回值可能用作他用,而這時還想讓方法輸出其他的資料,就可以使用out引數了。
8樓:
引用引數:以關鍵字ref定義,採用引用傳遞
輸出型引數:以關鍵字out定義,採用引用傳遞,其實參可以不進行初始化
C中用了ref就是引用傳遞,C中ref和out到底有什麼用?什麼時候會用到呢?我瀏覽了一些資料但都不是很明白。
對啊ref 關鍵字使引數按引用傳遞。其效果是,當控制權傳遞 用方法時,在方法中對引數所做的任何更改都將反映在該變數中。若要使用 ref 引數,則方法定義和呼叫方法都必須顯式使用 ref 關鍵字。c 中ref和out到底有什麼用?什麼時候會用到呢?我瀏覽了一些資料但都不是很明白。ref表示引數傳遞時按...
java傳遞的是值還是引用,javastring是值傳遞還是引用傳遞
java 八大基本型別做為引數為 值傳遞 object物件做為引數為 引用傳遞 java string是值傳遞還是引用傳遞 java string值傳遞,可以參考如下解釋 java 程式語言只有值傳 遞引數。當一個物件例項作為一個引數被傳遞到方法中時,引數的值就是該物件的引用一個副本。指向同一個物件...
誤差的傳遞公式是什麼,誤差的傳遞公式
加法中的誤差傳遞 x u v,x的均方差為 x sqrt u 2 v 2 誤差傳遞公式是目標函式對每一 版個權引數求偏導數,然後帶入對應數值之後取絕對值,再乘以對應引數的不確定度求和。線性函式 線性函式z k1x1 k2x2 knxn則有mz k1m1 2 k2m2 2 knmn 2 1 2 一般函...