int f; //聲明一個整形變量
int *f; //聲明一個指針變量
int *f,g; //聲明一個指針變量f和一個整形變量g
int f(); //聲明一個函數,返回整形數值
int (*f)(); //聲明一個函數指針,f是指針變量,返回int型
int *f(); //聲明一個指針函數,f是函數,該函數返回int行指針
int *(*f)(); //聲明一個函數的指針,也可以說是一個只想函數地址變量,f為指針變量,只想這個函數,返回int型指針
int f[]; //聲明一個數組,
int *f[]; //聲明一個數組指針,f為1個數組,數組里的數據存儲的都是執行int型數據的指針。
int (*f[])(); //聲明一個函數指針數組,f是一個數組,數組里存儲的數據都是指向一個函數的指針,這個指針指向的函數返回int型數據
int *(*f[])(); //聲明一個函數指針數組,f是一個數組,數組里存儲的數據都是指向一個函數的指針,這個指向的函數返回int型指針數據(返回指向int數據的地址)
struct A
{
char a1;
int a2;
}; //聲明一個沒有名字的結構體
struct A f; //聲明一個結構變量f
{
char a1;
int a2;
}; //聲明一個沒有名字的結構體
struct A f; //聲明一個結構變量f
typedef B
{
int b1;
char b2;
}b; //聲明一個命為b的結構
b f; //聲明一個結構變量f
{
int b1;
char b2;
}b; //聲明一個命為b的結構
b f; //聲明一個結構變量f