C語言C++指針與java中引用的一點對此


在C語言或者C++中,我們定義一個整型數組的時候,如下所示

int a[5];

上面一條語句定義了一個包含5個整型元素的數組,a是一個指針,指向了所定義數組的第一個元素,即a[0],此時,如果定義int *p = a,則定義了一個指針變量,該指針同樣指向數組的第一個元素a[0],int b = a[0],則變量b是a[0]的一個引用,(*p)某種意義上也是a[0]的一個引用。


在JAVA中,如果定義了一個類Dog,實例化該類的對象的時候 Dog myDog = new  Dog(),在java中說,new Dog()創建了一個Dog對象,myDog是Dog對象的一個引用,其實這裏和C++中實質一致:


C++ :int *p = &a;

java: Dog myDog = new Dog();


在使用時,(*p)或者myDog都代表我們所定義的數據或者對象,是對數據或者對象的一個引用。


在來談一談C/C++中的指針數組與數組指針

指針數組,類似於整型數組,整型數組用於保存整型數據對象,則指針數據對象用於保存指針。

數組指針:用於保存數組首地址的指針。


int a[5] ;   ---- 定義整形數組,int是類型。

int * a[5] --- 定義指針數組,int*是類型,同樣說明[]運算符的優先級高於*


int (*a)[5] -- 定義了數足指針,int (*a) -- 定義了一個指針,該指針指向一個長度爲5的整型數組。

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