int f() f是一個函數,返回一個整型值
int *f() f是一個函數,返回一個整型指針
int (*f)() f是一個函數指針,所指向的函數返回一個整型值
int *(*f)() f是一個函數指針,所指向的函數返回一個整型指針
int f[] f是一個整型數組
int *f[] f是一個指針數組,數組元素的類型是整型指針
int (*f)[] f是指针,指向一个数组,数组元素為整型
int f()[] 非法。f是一個函數,但是函數不可能返回一個數組,函數只能返回標量值。
int (*f[])() f是一個數組,數組元素類型為函數指針,所指向的函數返回整型值
int *(*f[])() f是一個指針數組,指針所指向的類型是返回值為整型指針的函數
int* a[10]; a是指针数组,数组每个元素是个Int类型的指针
int (*a)[10]; a是数组指针,a指向一个数组,该数组有10个Int类型的元素。所以a++会前进40个字节地址。
int a[2][3][4];
int (*p1)[2][3][4]=&a; p1为指向一个三维[2][3][4]数组的指针。
int (*p2)[3][4]=a; a==&a[0],而a[0]是一个二维[3][4]的数组。
int (*p3)[4]=a[0]; a==&a[0][0],而a[0][0]是一个一维[4]的数组。
int *p4=a[0][0]; a[0][0]==&a[0][0][0],而a[0][0][0]是一个Int类型的元素。