| 编号 | 声明(Declaration) | 解析顺序(从内向外) | 含义(What it is) |
| 原题 | int (*SS[100])(int); | SS$\rightarrow$ [100]$\rightarrow$ *$\rightarrow$ (int)$\rightarrow$ int | 函数指针数组:一个包含 100 个元素的数组,每个元素是指向int func(int)函数的指针。 |
| 例子 1 | int (*FuncPtr)(char); | FuncPtr$\rightarrow$ *$\rightarrow$ (char)$\rightarrow$ int | 函数指针:一个指针,指向一个接受char参数并返回int的函数。 |
| 例子 2 | char *(*ArrPtr)[5]; | ArrPtr$\rightarrow$ *$\rightarrow$ [5]$\rightarrow$ *$\rightarrow$ char | 指向指针数组的指针:一个指针,它指向一个包含 5 个元素的数组,数组的每个元素都是char*类型。 |
| 例子 3 | void (*Arr[2])(int, float); | Arr$\rightarrow$ [2]$\rightarrow$ *$\rightarrow$ (int, float)$\rightarrow$ void | 函数指针数组:一个包含 2 个元素的数组,每个元素是指向void func(int, float)函数的指针。 |
| 例子 4 | int (*(*CrazyArr[3])())[10]; | CrazyArr$\rightarrow$ [3]$\rightarrow$ *$\rightarrow$ ()$\rightarrow$ *$\rightarrow$ [10]$\rightarrow$ int | 指向数组指针的数组:一个包含 3 个元素的数组,每个元素是一个指针,指向一个不接受参数的函数,该函数返回一个指向int [10]数组的指针。 |