數組名後面的 [ ] 和 ( ) 具有相同的優先級,它們的優先級高於 *.
例如:
int *a[10] , [10]先和a結合,它聲明瞭一個含有10個元素的數組,其中每個元素都是指向 int 類型的指針.
int (* a)[10], ( ) 和 [ ] 優先級相同,並且都是從左向右結合,* 和 a 先結合,因此 a 是一個指向數組的指針,該指針內含10個元素.
int a[10[[20] , 聲明瞭一個 10 * 20 的二維數組.
int a[10][20] , 的優先級低於[10] , [10] 先和 a 結合, 因此 a 首先是一個內含10個元素的數組,再與 [20] 結合,所以 a 的每個元素都是內含20個元素的數組. * 說明這些元素都是指針, 最後 int 表明這些元素都是指向 int 類型的指針. 所以 a是一個內含10個元素的數組,其中每個元素都都是由內含20個指向 int 類型的指針組成的數組.總的來說, a 是一個二維數組.
int (* a[10])[20], ( * a[10]) 和 [20] 優先級相同,並且從左向右結合, (* a[10]) 中 , [10] 的優先級高於 *,因此它聲明瞭一個內含10個指針元素的數組,其中每個指針都指向一個內含20個元素的數組