Post

C语言的函数指针

C语言的函数指针

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#incldue <stdio.h>

int two(int x){ 
    return x * 2;
}
int three(int x){ 
    return x * 3;
}

int main(){
 int (*times)(int);
 int n  = 2;
 
 if (argc == 1){
 	times= two;
 }else{
 	times = three;
 }
 pirntf("times(%d)=%d\n",n,times(n));
}

其中函数返回值类型 (* 指针变量名) (函数参数列表);,“`函数返回值类型” 表示该指针变量可以指向具有什么返回值类型的函数;“函数参数列表” 表示该指针变量可以指向具有什么参数列表的函数。这个参数列表中只需要写函数的参数类型即可。

1
int (*times)(int);

变量times,是指向一个拥有int型的参数并返回int数值的函数的指针。

当参数为0个时,将函数two()的指针赋值给变量times

1
times(2)=4

当参数存在时,将three的指针赋给times

1
times(2)=6
This post is licensed under CC BY 4.0 by the author.