Pointer array: An array storing pointers. It is an array. All elements in the array are pointers (that is, some addresses in the array)
Example: uint16 * mbxlength [1024]; is a pointer array. The array mbxlength [1024] contains 1024 uint16 pointer variables (uint16 pointer variables mean that each pointer variable points to a uint16 element ).
Array pointer: a pointer to an array. It is a pointer that points to an array.
Example: uint16 (* mbxlength) [1024]; is an array pointer. This pointer points to a table that stores 1024 uint16 data types.
Pointer function: A function whose return value type is Pointer variable.
Example: uint16 * mbxlength (INT 16, int 32); is a pointer function. It is a function, and the return value type of the function is a pointer variable pointing to uint16 type data.
Function pointer: a pointer to a function. It is a pointer that points to a function.
Example: uint16 (* mbxlength) (int16, int32); is a function pointer. It is a pointer that points to a function with a return value type of uint16. The parameter list is a function of the int16 type and int32 type.
Function pointer array: An array that stores function pointers. It is an array. That is, every element of the array is a function pointer. (To put it bluntly, it is a pointer array, but the pointer stored in this pointer array is a special pointer, all pointing to a certain type of function)
Example: uint16 (* mbxlength [1024]) (int16, int32); is a function pointer array. This array has mbxlength [1024] and stores 1024 function pointers. Each function pointer points to a function with the data of the uint16 type returned value and the parameter types being int16 and int32.