Chinaunix首页 | 论坛 | 博客
  • 博客访问: 92323
  • 博文数量: 41
  • 博客积分: 1531
  • 博客等级: 上尉
  • 技术积分: 420
  • 用 户 组: 普通用户
  • 注册时间: 2005-05-17 10:15
文章分类

全部博文(41)

文章存档

2014年(2)

2012年(1)

2011年(2)

2008年(9)

2007年(2)

2006年(5)

2005年(20)

分类: 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

阅读(1070) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~