函数指针的定义:
函数类型 (标识符 指针变量名)(形参列表)
void printHello( );
void printHello( ){
printf("hello world!!! " );
}
main函数中:
//创建函数指针,同时赋值空
int (*p)() = NULL;
p = printHello // 将函数名称 赋值给函数指针,相当于函数的入口赋值给一个内存地址.
p( ); // 此时函数指针p就可以像函数名一样调用. 就可以理解为p 于 函数名是"相等".
实用1:
int sumValue(int a , int b){
return a + b;
}
int subValue(int a , int b ){
return a - b;
}
main函数:
//创建一个函数指针变量
int (*p2)(int , int);
// char str[] ={0};
// 在堆空间开辟一个 1* 20 字节的空间,同时str指向控制台输入的字符数组.
char *str = malloc( sizeof(char) * 20);
printf("Please enter some thing :");
scanf("%s" , str);
if(strcmp(str, "sub") == 0){
p = subValue( );
}else if( strcmp(str , "sum") == 0){
p = sumValue( );
}else {
printf("you are wrong !! ");
}
int x = 20, y = 45;
int result = p( x, y );
printf("%d", result );
free( str );
str = NULL;