下面是一列声明
- int p( ) ;
//返回值为int的函数 - int p[3];
//int型数组 - int **p( );
//返回值为“一个int型指针的指针”的函数 - int (*p)( );
//返回值为int的函数指针 - int (*p) [6]; //
//指向“int型数组”的指针—》数组指针 - int *p( );
//返回值为“int型指针”的函数 - int **(*p[6]) ( );
//指向“返回值为int型指针的指针的函数” 的指针的数组 - int **p[6];
//int型指针的指针数组 - int *(*p)[6];
//指向“int型指针数组”的指针 - int *(*abc) [6];
//指向返回型是“int型指针的指针的函数”的指针的数组 - int *(*p( ) ) ( );
//返回值为“int型指针的函数指针”的函数 - int (**(*p) ( ) ) ( );
//返回值为“int型指针的函数指针的指针”的函数指针 - int (* (*p)( ) ) [6];
//返回值为“int型数组的指针”的函数指针 - int * ( * ( *( *p ) ( )) [6] ) ( );
//返回值为“指向“返回值为int型指针的函数指针”的数组的指针”的函数指针
tips:
1.要先看运算符优先级,[ ]和()都比*优先级高
2.int *p[ ] 数组指针,指向数组的指针
3.int (*p) [ ] 指针数组 , 数组元素都是指针变量
4.int *p( ) 返回值为指针的函数
5. int (*p) ( ) 返回值为整型的函数指针