浅谈PHP与C#的值类型指向区别的详解

Ada ·
更新时间:2024-09-20
· 977 次阅读

PH和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变量的值类型和引用类型PHP中返回引用类型的方法php函数间的参数传递(值传递/引用传递)php 传值赋值与引用赋值的区别php 引用(&)详解PHP中函数内引用全局变量的方法PHP引用(&)各种使用方法实例详解PHP 引用文件技巧php中引用符号(&)的使用详解php foreach 使用&(与运算符)引用赋值要注意的问题PHP中引用类型和值类型功能与用法示例



C# 值类型 PHP

需要 登录 后方可回复, 如果你还没有账号请 注册新账号