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的整型數組。