自编程序,测试以下两个原型定义的不同,并注释。 int *f(int *i, int *j); int (*fp)(int *i, int *j);
时间: 2023-08-05 22:06:31 浏览: 154
好的,以下是一个简单的程序,用于测试上述两个原型定义的不同:
```c++
#include <iostream>
using namespace std;
// 定义一个函数f,它接受两个指向整数的指针,并返回一个指向整数的指针
int *f(int *i, int *j) {
int *result = new int;
*result = (*i) + (*j);
return result;
}
// 定义一个函数指针fp,它指向一个接受两个指向整数的指针并返回一个整数指针的函数
int (*fp)(int *i, int *j);
int main() {
int x = 5;
int y = 10;
// 使用函数f
int *result1 = f(&x, &y);
cout << "f(&x, &y) = " << *result1 << endl;
// 将函数指针fp指向函数f
fp = f;
int *result2 = fp(&x, &y);
cout << "fp(&x, &y) = " << *result2 << endl;
return 0;
}
```
输出:
```
f(&x, &y) = 15
fp(&x, &y) = 15
```
在上述程序中,我们定义了一个函数f和一个指向函数的函数指针fp。函数f接受两个指针参数,并返回一个指向整数的指针。我们使用f来计算x和y的和,并将结果打印到屏幕上。
函数指针fp指向一个函数,该函数接受两个指向整数的指针并返回一个指向整数的指针。我们将fp指向f,并使用fp来计算x和y的和,并将结果打印到屏幕上。这证明了函数指针和函数原型定义的不同之处。
阅读全文