指向函数的指针
看看注释部分,总是被这有无括号搞晕,所以现在只有强记了先,`(*∩_∩*)′
c = ( *p )( a, b );等价于c = max ( a, b );
# include <stdio.h> int main ( void ) { int max ( int, int ); int ( *p )( int, int ); int a, b, c; p = max; //这里的函数名代表的是该函数的入口地址 scanf ( "%d, %d", &a, &b ); c = ( *p )( a, b ); //注意了,这里*p两侧的括号不可以省略,表示p先与*号结合,是指针变量,然后再与后面的的()结合,表示此指针变量指向函数,如果写成int *p( int, int )则由于()的优先级高于*,它就成了声明一个p函数了(这个函数的返回值是指向整形变量的指针), printf ( "a = %d, b = %d, max = %d\n", a, b, c ); } int max ( int x, int y ) { int z; if ( x > y ) z = x; else z = y; return z;
浙公网安备 33010602011771号