PHP与C#的值类型指向差别
添加时间:2013-5-21 点击量:
PHP 和C#的值拷贝差别 (若是哪里说的不合错误,还望指出!本人也是新手,只是秉承分享的精力来写这篇文章)
¥a = 2;
¥b = ¥a; //在php中这里把b的地址指向a 所以b此时也便是2;差别就在这
¥a = 5; //这时php中a的值又从头写值,所以php核心这时才会把b从头分派一个地址,然后把a本来的值进行拷贝。这就是 写时拷贝 道理 , 也就是说,除非进行写操纵,不然值类型就是指向一个地址。
而C#中。值类型的复制。永远都是新建一个地址 如:
int a = 2;
int b = a; //此时不管有没有进行a的二次写入。.NET都邑把给b分派一个新的内存空间(值存在栈空间的)。然后再把a的值拷贝一份
重视: C#中 值类型的值是直接存放栈中的。而引用类型,引用地址是存放在栈中,实际的值则存放在堆中。按照栈的地址,找堆中的值.
PHP 和C#的值拷贝差别 (若是哪里说的不合错误,还望指出!本人也是新手,只是秉承分享的精力来写这篇文章)
¥a = 2;
¥b = ¥a; //在php中这里把b的地址指向a 所以b此时也便是2;差别就在这
¥a = 5; //这时php中a的值又从头写值,所以php核心这时才会把b从头分派一个地址,然后把a本来的值进行拷贝。这就是 写时拷贝 道理 , 也就是说,除非进行写操纵,不然值类型就是指向一个地址。
而C#中。值类型的复制。永远都是新建一个地址 如:
int a = 2;
int b = a; //此时不管有没有进行a的二次写入。.NET都邑把给b分派一个新的内存空间(值存在栈空间的)。然后再把a的值拷贝一份
重视: C#中 值类型的值是直接存放栈中的。而引用类型,引用地址是存放在栈中,实际的值则存放在堆中。按照栈的地址,找堆中的值.