一个超昏的C语言问题,请大家帮着看一看。

下面的这个定义该怎么理解呀?有错误吗?
int *( *( *a[5]) ( ) ) ( );

作者: redapple0412424   发布时间: 2011-06-16

a是一个有五个元素的数组
数组内容是一个指针
指针指向的是一个函数
函数返回一个指针
这个指针指向另一个函数
函数为返回一个int *的函数

作者: xiaoguangzaia   发布时间: 2011-06-16

http://topic.csdn.net/u/20070112/09/35186E5A-0D94-4EA6-9B72-C5463CB3D1F3.html

作者: xiaoguangzaia   发布时间: 2011-06-16

引用 1 楼 xiaoguangzaia 的回复:

a是一个有五个元素的数组
数组内容是一个指针
指针指向的是一个函数
函数返回一个指针
这个指针指向另一个函数
函数为返回一个int *的函数

up++!
C语言专家编程里有方法

作者: cqltwslt   发布时间: 2011-06-16

int *( *( *a[5]) ( ) ) ( );
  a[5] //数组
  *a[5] //数组元素是指针
  (*a[5]) ( ) //指针是一个函数指针
  *(*a[5]) ( ) //函数返回一个指针
  ( *(*a[5]) ( ) ) ( ) //返回的指针是另一个函数指针
int *( *(*a[5]) ( ) ) ( ); //该函数指针又返回一个 int * 类型

作者: linxren   发布时间: 2011-06-16

C/C++ code

int *( *( *a[5]) ( ) ) ( );
           a[5]              //数组
           *a[5]              //数组元素是指针
          (*a[5]) ( )         //指针是一个函数指针
         *(*a[5]) ( )         //函数返回一个指针
       ( *(*a[5]) ( ) ) ( )   //返回的指针是另一个函数指针
int  *( *(*a[5]) ( ) ) ( );  //该函数指针又返回一个 int * 类型

作者: linxren   发布时间: 2011-06-16

函数指针数组

作者: lanxue_1988   发布时间: 2011-06-16

int *( *( *a[5]) ( ) ) ( );
  a[5] //数组
  *a[5] //数组元素是指针
  (*a[5]) ( ) //指针是一个函数指针
  *(*a[5]) ( ) //函数返回一个指针
  ( *(*a[5]) ( ) ) ( ) //返回的指针是另一个函数指针
int *( *(*a[5]) ( ) ) ( ); //该函数指针又返回一个 int * 类型

不过一般只有自认为自己超牛、且喜欢做不切实际的事情的人才会使用这样的代码。
这样的代码,他自己在多少年后,自己老了的时候,恐怕还看不懂。
这样的代码,维护性很差。认真做事的人是不用的。

作者: vcf_reader   发布时间: 2011-06-16

你妹,谁胡这么写?难道真的有意义?

作者: linlouyijian   发布时间: 2011-06-16