淺談PHP與C#的值類型指向區(qū)別的詳解
更新時(shí)間:2013年05月21日 14:29:45 作者:
本篇文章是對(duì)PHP與C#的值類型指向的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
PH和C#的值拷貝區(qū)別(如果哪里說的不對(duì),還望指出!)
$a = 2;
$b = $a; //在php中這里把b的地址指向a 所以b此時(shí)也等于2;區(qū)別就在這
$a = 5; //這時(shí)php中a的值又重新寫值,所以php核心這時(shí)才會(huì)把b重新分配一個(gè)地址,然后把a(bǔ)原先的值進(jìn)行拷貝。這就是 寫時(shí)拷貝 原理 , 也就是說,除非進(jìn)行寫操作,否則值類型就是指向一個(gè)地址。
而C#中。值類型的復(fù)制。永遠(yuǎn)都是新建一個(gè)地址 如:
int a = 2;
int b = a; //此時(shí)不管有沒有進(jìn)行a的二次寫入。.NET都會(huì)把給b分配一個(gè)新的內(nèi)存空間(值存在棧空間的)。然后再把a(bǔ)的值拷貝一份
注意: C#中 值類型的值是直接存放棧中的。而引用類型,引用地址是存放在棧中,實(shí)際的值則存放在堆中。根據(jù)棧的地址,找堆中的值.
$a = 2;
$b = $a; //在php中這里把b的地址指向a 所以b此時(shí)也等于2;區(qū)別就在這
$a = 5; //這時(shí)php中a的值又重新寫值,所以php核心這時(shí)才會(huì)把b重新分配一個(gè)地址,然后把a(bǔ)原先的值進(jìn)行拷貝。這就是 寫時(shí)拷貝 原理 , 也就是說,除非進(jìn)行寫操作,否則值類型就是指向一個(gè)地址。
而C#中。值類型的復(fù)制。永遠(yuǎn)都是新建一個(gè)地址 如:
int a = 2;
int b = a; //此時(shí)不管有沒有進(jìn)行a的二次寫入。.NET都會(huì)把給b分配一個(gè)新的內(nèi)存空間(值存在棧空間的)。然后再把a(bǔ)的值拷貝一份
注意: C#中 值類型的值是直接存放棧中的。而引用類型,引用地址是存放在棧中,實(shí)際的值則存放在堆中。根據(jù)棧的地址,找堆中的值.
相關(guān)文章
Yii框架常見緩存應(yīng)用實(shí)例小結(jié)
這篇文章主要介紹了Yii框架常見緩存應(yīng)用,結(jié)合實(shí)例形式分析了Yii框架緩存相關(guān)的配置、獲取、查詢等操作技巧與注意事項(xiàng),需要的朋友可以參考下2019-09-09
php實(shí)現(xiàn)按文件名搜索文件的遠(yuǎn)程文件查找器
php文件查找程序,輸入一個(gè)路徑確定后會(huì)遍歷目錄下所有的文件和文件夾,通過遞歸可以找到文件夾下面的每一個(gè)文件,再通過文件名和輸入的關(guān)鍵字匹配,則可以查找到你想要的文件2014-05-05
laravel Task Scheduling(任務(wù)調(diào)度)在windows下的使用詳解
今天小編就為大家分享一篇laravel Task Scheduling(任務(wù)調(diào)度)在windows下的使用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-10-10

