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方法解開引用變量和其所指向的內容,使該引用不在指向該內容,但“解開”后并不改變其他最初和它指向同一內容的引用的"指向"。






最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,740評論 18 399
  • Java經典問題算法大全 /*【程序1】 題目:古典問題:有一對兔子,從出生后第3個月起每個月都生一對兔子,小兔子...
    趙宇_阿特奇閱讀 1,894評論 0 2
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,837評論 18 139
  • 童年的時候住在一個偏遠卻幽靜的小山村,村子里平常鮮有車輛通行。偶爾駛過一輛小轎車,引的門口曬太陽的老人或是聚在一起...
    綠蘿花123閱讀 260評論 2 1
  • 上一章 夢之家族 第六篇舊友重逢 雁南飛問我:“怎么一個人傻笑?” “沒什么,我只是在想,我那笨徒弟看到我,一定...
    筆間流年閱讀 379評論 0 1