2016-02-23 81 views
2

我是C++的新手,正在嘗試學習數組的概念。我知道「int *(&arry)[10] = ptrs;」是什麼意思?你怎麼看這樣的東西?

int *ptrs[10]; 

具有ptrs的含義是指向int的十個指針的數組。那麼如何

int *(&arry)[10] = ptrs; 

我很困惑它的許多語法,所以有人請向我解釋它是什麼意思,以及如何閱讀它?如果有人能夠將其分解並以更小的部分解釋,那將是一件好事。

+2

FWIW,[cdecl.org](http://cdecl.ridiculousfish.com/?q=int+*%28%26arry%29%5B10%5D%3B)告訴你究竟是什麼'int *( &arry)[10];'是。儘管有些事情需要進行分組,並且在做某些事情時做出反應,但我從來沒有遇到過[螺旋規則](http://c-faq.com/decl/spiral.anderson.html)中的問題。它而不是螺旋。 – chris

+0

@chris哦哇!我不知道這樣有用的網站存在。感謝您指出了我,真的appreicate它! – Thor

+2

@chris:我不會說它確切地告訴你*它是什麼。它有自己奇怪的語法,雖然它比C和C++聲明更清晰一些,但它並不完全是英文的。 –

回答

5

arry是一個參考(指向int的十個指針的數組)。使用typedef可以使其更清楚。它們是相同,

typedef int* PTRS[10]; 
PTRS& arry = ptrs; 

或(因爲C++ 11)

using PTRS = int* [10]; 
PTRS& arry = ptrs; 
+3

或者,在現代C++中,'使用PTRS = int * [10];' – kfsone

2

可變arry是十個指針的數組,以整數參考。我不知道你爲什麼要這樣做,但這就是它的意思。 :-)

相關問題