php java c++中引用的区别

C++

  • 定义:引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。
  • int a=2,int &ra=a;
    a为目标原名称,ra为目标引用名。给ra赋值:ra=1; 等价于 a=1;如果操作ra的话相当对a进行操作。下面是一个简单的例子:
   int i=2;
   int &ri=i;
   ri++;
   cout<< "i :"<< i <<" ri: "<< ri<<endl;
  //打印结果是 i :3 ri: 3

java

  • java中的对象引用性质上跟C++的引用大同小异。区别是创建一个对象变量时不需要加上&(java中基本数据类型没有引用这个概念),该变量默认就是引用,还有另外一个重要的区别是java中的引用在改变其所"指向"时不改变其他最初和它指向同一内容的引用的"指向"。描述可能有点难理解,下面是一个例子

    public class ReferClazz {      
       public static void main(String args[]){
            ReferClazz r0 = new ReferClazz(0);
            ReferClazz r1 = r0;
            r1.change(100);
            System.out.println("change--"+"r0 : "+r0+"   r1 : "+r1);
            r1 = new ReferClazz(111);
            System.out.println("refer--"+"r0 : "+r0+"   r1 : "+r1);
            // change--r0 : 100   r1 : 100
            // refer--r0 : 100   r1 : 111
      }
    
        int referNum;
    
        public ReferClazz(int referNum){
             this.referNum = referNum;
        }
      
        public void change(int x){
             this.referNum = x;
        }
     
         public String toString(){
             return referNum+"";
        }
    

}

例子中引用r1改变了指向的对象并没有使r0改变指向的对象,这样验证了前面的说法。但需要注意的是在Java中String对象的引用是一种比较特殊的存在,具体可参考https://m.oschina.net/blog/507100


##php
php引用本质上跟C++大同小异,但有一个区别是php可以通过unset方法解开引用变量和其所指向的内容,使该引用不在指向该内容,但“解开”后并不改变其他最初和它指向同一内容的引用的"指向"。






最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,276评论 18 399
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 5,948评论 0 2
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,803评论 19 139
  • 童年的时候住在一个偏远却幽静的小山村,村子里平常鲜有车辆通行。偶尔驶过一辆小轿车,引的门口晒太阳的老人或是聚在一起...
    绿萝花123阅读 1,823评论 2 1
  • 上一章 梦之家族 第六篇旧友重逢 雁南飞问我:“怎么一个人傻笑?” “没什么,我只是在想,我那笨徒弟看到我,一定...
    笔间流年阅读 2,994评论 0 1

友情链接更多精彩内容