看**:
<?php
define("n", 10000);
define("n", 10000);
ini_set('memory_limit', '1g');
function microtime_float()
function printarray0(&$arr) //引用傳遞
function printarray1($arr) //值傳遞
for($i=0 ; $i < n; $i++)
$arr = rand(0,n);
$start = microtime_float();
for($i=0;$i在沒有任何改變陣列值得操作時(如注釋掉:$arr[0] = rand(0,9);),兩次耗時基本無差別。
但一旦有改變陣列值得操作時,值傳遞耗時大大增加,而對引用傳遞的耗時影響不大。
值傳遞copy-on-write,引用傳遞change-on-write。
值傳遞與引用傳遞
分析 形參是實參的拷貝,改變形參的值並不會影響外部實參的值。由於x 1 是在test方法棧裡面執行的,所以只會改變test方法棧裡面的x值,而不會改變main方法棧裡面的x值 形參的改變不會影響實參 引用傳遞,傳遞的是實際引數的位址.傳遞的是值的引用,也就是說傳遞前和傳遞後都指向同乙個引用 同乙個記...
值傳遞與引用傳遞
值傳遞,只是傳遞副本,而引用傳遞,是傳遞乙個位址 using system using system.collections.generic using system.linq using system.text v console.writeline 引用傳遞,結果為!r static void ...
值傳遞與引用傳遞
一般是對於基本型別而言,傳遞的是變數值的乙個副本,因此,對變數副本進行相關修改,不會影響原來的資料。如下例子 public static void main string args public static void add int i 結果 一般是對於物件型變數而言,傳遞的是物件變數的位址副本 ...