在通过函数指针调用函数时,使用p(1,2)和(*p)(1,2)有有什么区别
时间: 2024-03-17 22:45:15 浏览: 50
在通过函数指针调用函数时,`p(1,2)`和`(*p)(1,2)`是等价的,都是调用函数指针所指向的函数,并传递参数1和2作为函数的实参。
在C语言中,函数指针变量可以直接像函数一样使用,也可以使用间接寻址运算符`*`来获取函数指针所指向的函数,并调用该函数。因此,`p(1,2)`和`(*p)(1,2)`的含义是相同的。
以下是使用函数指针调用函数的例子:
```
int max(int a, int b) {
return a > b ? a : b;
}
int main() {
int (*p)(int, int) = max; // 声明并初始化函数指针变量p,指向函数max
int result1 = p(3, 5); // 使用函数指针变量p调用max函数
int result2 = (*p)(3, 5); // 使用间接寻址运算符*和函数指针变量p调用max函数
printf("%d, %d\n", result1, result2); // 输出 5, 5
return 0;
}
```
上述代码中,我们声明并初始化了一个函数指针变量`p`,指向函数`max`。然后,我们使用`p(3,5)`和`(*p)(3,5)`分别调用了`max`函数,得到的结果都是3和5中的较大值5。
阅读全文