首页 > 代码库 > C语言基础11

C语言基础11

函数指针的定义:

函数类型 (标识符 指针变量名)(形参列表)

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;

 

C语言基础11