java, C++ 指針和引用區別

        在java中,爲了設計方便,我們看到的只有引用,用的也只有引用,引用說白了就是一個對象的別名,指針,就是java中的對象的引用,比如你創建一個對象沒有初始化:String s;當然是作爲局部變量,如果是全局變量(也就是對象的屬性)的時候,是會有默認值的,比如boolean類型默認值是false,int類型默認值是0,沒有初始化的時候,使用時,比如這樣用:System.out.println(s),會報NullPointerException。

但是在C++中,這個問題就比較明顯了,指針:指針是一個變量,只不過這個變量存儲的是一個地址,指向內存的一個存儲單元;而引用跟原來的變量實質上是同一個東西,只不過是原變量的一個別名而已;可以有const指針,但是沒有const引用;指針可以有多級,但是引用只能是一級(int **a;合法 而 int &&a是不合法的);指針的值可以爲空,但是引用的值不能爲NULL,並且引用在定義的時候必須初始化;指針的值在初始化後可以改變,即指向其它的存儲單元,而引用在進行初始化後就不會再改變了;"sizeof引用"得到的是所指向的變量(對象)的大小,而"sizeof指針"得到的是指針本身的大小;指針和引用的自增(++)運算意義不一樣;


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章