例題1:寫成函數指針、函數返回指針、const指針、指向constr的指針、指向const的const指針
void(*f)();
void* f();
const int*;
int* const;
const int* const;
例題2:下面的函數聲明都代表什麼?
float(**def)[10];//(1)
double *(*gh)[10];//(2)
double(*f[10])();//(3)
int*((*b)[10]);//(4)
long (*fun)(int);//(5)
int(*(*F)(int,int))(int);//(6)
(1)def是一個二級指針,指向的是一個一位數組的指針,數組的元素都是float類型。
(2)gh是一個指針,指向一個一位數組,數組的元素都是double*。
(3)f是數組,f有10個元素,元素都是函數的指針,指向的函數類型是沒有參數且返回double的函數。
(4)b是一個指針,指向一個一位數組,數組的元素都是int*。
(5)fun是一個函數指針
(6)f是一個函數的指針,指向的函數的類型是有兩個int參數並且返回一個函數指針的函數,返回的函數指針指向有個int參數且返回int的函數。