VC++関数ポインタとポインタ関数についての簡単な紹介

703 ワード

例題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は2次ポインタであり,1ビット配列のポインタを指し,配列の要素はfloatタイプである.
(2)ghはポインタであり、1つの配列を指し、配列の要素はdouble*である.
(3)fは配列であり,fには10個の要素があり,要素はいずれも関数のポインタであり,指す関数タイプはパラメータがなくdoubleを返す関数である.
(4)bはポインタであり、1つの配列を指し、配列の要素はint*である.
(5)funは関数ポインタである
(6)fは1つの関数のポインタであり、指す関数のタイプは2つのintパラメータがあり、1つの関数のポインタを返す関数であり、返される関数のポインタはintパラメータがあり、intを返す関数を指す.