指针的高级应用

来源:互联网 发布:北大网络教育如何 编辑:程序博客网 时间:2024/06/06 11:04
int* f,g;
他并没有声明两个指针,尽管他们之间存在空白,但星号只做用于f,f指针,g只是一个普通的整形变量。
int *f( )
他表示f是个函数,他的返回值类型是一个指向整型的的指针。( )是函数调用操作符
int (*f) ( )
第二个括号是函数调用操作符,第一个括号只起到聚组作用,他迫使函数调用之前使f成为一个函数指针,它所指向的函数返回一个整形值。
int *(*f)( )
f是一个函数指针,只是所指向的返回值是一个整形指针;
int f[ ]
表示f是个整形数组
int *f[ ]
两个操作符,下标的优先级更高,所以f是一个数组,它的元素类型是指向整型的指针。
int (*f[ ])( )
f是一个元素为某种类型的指针的数组,末尾的括号是函数调用操作符,所以f一定是数组,数组元素的类型是函数指针,它所指向的函数的返回值是一个整形值。
int *(*f[ ])( )
这个声明创建了一个指针数组,指针所指向的类型是返回值为整形指针的函数。
函数指针的两个主要用途是转换表和作为参数传递给另一个函数‘。’
函数指针执行间接访问之前必须把它初始化为指向某个函数。
例如: int(*pf) (int)=&f;
0 0