c++用指针完成阶乘
时间: 2024-11-22 17:19:45 浏览: 16
在C++中,你可以使用指针来计算阶乘,因为指针可以在函数之间传递变量的地址,而不需要复制整个值。下面是一个简单的示例,展示了如何使用函数指针来计算阶乘:
```cpp
#include <iostream>
// 定义计算阶乘的函数
unsigned long long factorial(int n) {
if (n == 0 || n == 1)
return 1;
else
return n * factorial(n - 1);
}
// 函数指针类型声明
typedef unsigned long long (*FactorialFunc)(int);
// 主函数中动态分配指针并调用
int main() {
FactorialFunc factorialPtr = &factorial; // 获取函数地址
int num;
std::cout << "Enter a number to calculate its factorial: ";
std::cin >> num;
// 使用指针调用阶乘函数
unsigned long long result = factorialPtr(num);
std::cout << "The factorial of " << num << " is: " << result << std::endl;
return 0;
}
```
在这个例子中,`factorialPtr` 是一个指向 `factorial` 函数的指针,我们将其赋给 `&factorial` 来获取函数的实际地址。然后在主函数中,我们通过这个指针调用 `factorial` 实现阶乘计算。
阅读全文