引用傳遞與值傳遞

2021-07-06 11:21:39 字數 488 閱讀 6034

看**:

<?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 結果 一般是對於物件型變數而言,傳遞的是物件變數的位址副本 ...