左右法則:先確定變量,接着按着先右後左的順序看 碰到[]爲數組 碰到()爲函數
變量:什麼類型的變量
指針:指向什麼類型
數組:數組裏的元素類型
函數:形參爲.....返回值爲.......
保存地址 稱爲指針變量
保存字符 稱爲字符變量
保存整型 稱爲整型變量
int*(*(*(*fp1)(int))[10]
fp1:函數指針變量,指向形參爲int,返回值爲一個數組指針,該指針指向整型數組指針
int*(*(*arr[5])())();
arr[5]:函數指針數組,該數組元素指向形參爲空返回值爲函數指針,該指針指向一個形參爲空返回值爲int*的函數。
float(*(*b())[])();
b:函數,該函數爲空,返回值爲數組指針,該指針指向一個函數數組指針數組,數組的元素指向一個形參爲空,返回值爲float的函數。
void*(*c)(char a,int(*b)());
c:函數指針變量,指向一個由兩個參數的返回值爲void*函數,第一個形參爲char,第二個形參爲函數指針,該指針指向形參爲空,返回值爲int的函數;
float(*(*e[10])(*int))[5];
e:函數指針數組,數組裏的元素指向一個形參爲*int,返回值爲數組指針,指向的數組爲float型數組;