数组,指针数组,数组指针,函数指针数组,函数指针数组的指针

光看名字就已经乱的不行了..我现在总结出来..每种的写法...

代码
// 数组
void  test()
{    
    
// 数组
     int  a[ 100 ];

    
// 指针数组,包含100个int*的数组
     int *  a[ 100 ];

    
// 数组指针,指向一个包含100个int类型的数组的指针
     int  ( * a)[ 100 ];

    
// 函数指针1,指向一个原型为void fun()的指针
     void  ( * fp)();

    
// 函数指针2,指向一个原型为char fun(char* p1,char* p2)的指针
     char *  ( * fp)( char *  p1, char *  p2);

    
// 函数指针数组1,声明了一个数组,数组名为fp,数组内存储了100个执行函数原型为void fun()的指针
     void  ( * fp[ 100 ])();

    
// 函数指针数组2,声明了一个数组,数组名为fp,数组内存储了100个执行函数原型为char fun(char* p1,char* p2)的指针
     char *  ( * fp[ 100 ])( char *  p1, char *  p2);

    
// 函数指针数组的指针1,指向一个包含数组内存储了100个执行函数原型为void fun()的指针
     void  ( * ( * fp)[ 100 ])();

    
// 函数指针数组的指针2,指向一个包含数组内存储了100个执行函数原型为char fun(char* p1,char* p2)的指针
     char *  ( * ( * fp)[ 100 ])( char *  p1, char *  p2);

}

 

 

你可能感兴趣的:(函数指针)