有一个函数int fun(int *x, int *y){......} 则:怎么用函数指针p调用fun?请编程完成(函数指针)
时间: 2024-03-27 15:40:14 浏览: 43
可以先定义一个函数指针类型,然后声明一个指向该类型的指针变量p,将p指向fun函数,最后通过指针p调用fun函数即可。
代码如下:
```c
#include <stdio.h>
int fun(int *x, int *y) {
return (*x + *y);
}
int main() {
int a = 3, b = 4;
int (*p)(int *, int *) = fun; // 声明函数指针并指向fun函数
int result = p(&a, &b); // 通过指针调用fun函数
printf("result = %d\n", result);
return 0;
}
```
输出结果为:
```
result = 7
```
相关问题
指针做参数: 求解鸡兔同笼.函数接口定义: void fun ( int h,int f,int *p,int *q );
鸡兔同笼问题可以用指针作为函数参数来解决。假设有 $h$ 个头和 $f$ 个脚,要求计算出鸡和兔的数量,可以定义一个名为 `fun` 的函数,函数的参数包括 $h$、$f$,以及两个指向鸡和兔数量的指针 `p` 和 `q`,函数的定义如下:
```c++
void fun(int h, int f, int *p, int *q) {
*p = (4 * h - f) / 2;
*q = h - *p;
}
```
在函数中,我们首先通过方程组来求解鸡和兔的数量,然后将结果存储在指针 `p` 和 `q` 所指向的内存地址中,这样就可以通过指针的值来获得函数的返回值。
使用该函数的示例如下:
```c++
int main() {
int h = 3, f = 10, chicken, rabbit;
fun(h, f, &chicken, &rabbit);
printf("鸡的数量:%d\n兔子的数量:%d\n", chicken, rabbit);
return 0;
}
```
在主函数中,我们声明了两个变量 `chicken` 和 `rabbit` 来存储鸡和兔的数量,然后将它们的地址传递给函数 `fun` 来计算鸡和兔的数量,最后输出结果。
void fun_b(int *x, int *y) {int *p; *x=*y;*y=*x; )
这是一个交换两个整型变量值的函数,函数名为fun_b,参数为两个指向整型变量的指针x和y。函数体内定义了一个指向整型变量的指针p,然后通过指针操作交换了x和y指向的变量的值。具体实现如下:
```c
void fun_b(int *x, int *y)
{
int *p;
p = x;
x = y;
y = p;
}
```
需要注意的是,函数内部的指针操作只是交换了指针本身的值,并没有交换指针所指向的变量的值。正确的实现方式应该是:
```c
void fun_b(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)