来自interview的一个考题,所以写了一个测试程序来demonstrate一下。
func是一个函数指针,该函数返回值是int,没有输入参数;然后主程序中声明了一个函数指针myFuncPointer,该函数指针代表的函 数输入参数是一个int,返回值也是一个函数指针,类型就是func类型的。所以我们可以把func2这个函数赋给myFuncPointer这个指针。 interview的题目要的就是myFuncPointer这个指针的声明。
func是一个函数指针,该函数返回值是int,没有输入参数;然后主程序中声明了一个函数指针myFuncPointer,该函数指针代表的函 数输入参数是一个int,返回值也是一个函数指针,类型就是func类型的。所以我们可以把func2这个函数赋给myFuncPointer这个指针。 interview的题目要的就是myFuncPointer这个指针的声明。
#include
<
stdio.h
>
typedef int ( * func)();
int func3()
{
printf( " In function 3......\n " );
return 0 ;
}
func func2( int a)
{
printf( " input parameter is: %d\n " , a);
return func3;
}
int main()
{
func ( * myFuncPointer)( int ) = func2;
func returnvalue = myFuncPointer( 1111 );
int func3_return = returnvalue();
printf( " Func3 return value is: %d\n " , func3_return);
return 0 ;
}
typedef int ( * func)();
int func3()
{
printf( " In function 3......\n " );
return 0 ;
}
func func2( int a)
{
printf( " input parameter is: %d\n " , a);
return func3;
}
int main()
{
func ( * myFuncPointer)( int ) = func2;
func returnvalue = myFuncPointer( 1111 );
int func3_return = returnvalue();
printf( " Func3 return value is: %d\n " , func3_return);
return 0 ;
}