分类: C/C++
2005-10-30 18:21:28
+++++++++++++++ 几种特殊指针的定义 +++++++++++++
定义指针,指向数组
typedef int (*ptr_array)[5][5];
定义函数指针,函数的返回类型为非数组和非函数
typedef int (*func1)( char ch );
定义函数指针,函数的返回类型为数组
typedef int (*(*func2)( char ch ))[5][5];
int (*func2_t( char ch ))[5][5]
{
...
}
定义函数指针,函数的返回类型为函数
typedef int (*(*func3)( char ch ))( char ch );
int (*func3( char ch ))( char ch )
{
...
}
例子:
+++++++++++++++ 几种特殊指针的定义 +++++++++++++
定义指针,指向数组
typedef int (*ptr_array)[5][5];
定义函数指针,函数的返回类型为非数组和非函数
typedef int (*func1)( char ch );
定义函数指针,函数的返回类型为数组
typedef int (*(*func2)( char ch ))[5][5];
int (*func2_t( char ch ))[5][5]
{
...
}
定义函数指针,函数的返回类型为函数
typedef int (*(*func3)( char ch ))( char ch );
int (*func3( char ch ))( char ch )
{
...
}
例子:
#include
typedef int (*func1)( char ch );
typedef int (*(*func2)( char ch ))[5][5];
typedef int (*(*func3)( char ch ))( char ch );
int ff4( char ch )
{
printf( "f4
" );
return 0;
}
int (*ff3( char ch ))( char ch )
{
printf( "f3
" );
return &ff4;
}
int (*ff1( char ch ))[5][5]
{
static int s[5][5];
typedef int (*s_t)[5][5];
s[0][0] = 0;
s[0][1] = 1;
s[0][2] = 2;
return (s_t)&s;
}
int main()
{
int (*p)[5][5];
func2 f2;
func3 f3;
f2 = &ff1;
p = f2( '1' );
f3 = ff3;
(f3( '1' ))( '2' );
printf( "%d,%d ", (*p)[0][0], (*p)[0][1] );
return 0;
}
这篇文章更详细:http://fogblog.blogbus.com/logs/2005/09/1436399.html