当前位置:首页题目 > 正文

c++题目函数指针数组

作者:野牛程序员:2023-08-20 21:24:54题目阅读 2840

题目函数指针数组 声明一个包含三个元素的函数指针数组,每个函数指针分别指向返回值为浮点数的函数。编写这三个函数,分别实现计算圆的面积、正方形的面积和三角形的面积,并用函数指针数组调用它们。

#include <stdio.h>
#include <math.h>

float calculateCircleArea(float radius) {
    return M_PI * radius * radius;
}

float calculateSquareArea(float side) {
    return side * side;
}

float calculateTriangleArea(float base, float height) {
    return 0.5 * base * height;
}

int main() {
    float (*areaFuncs[])(float) = {calculateCircleArea, calculateSquareArea, calculateTriangleArea};

    for (int i = 0; i < 3; i++) {
        printf("Area %d: %.2f\\n", i+1, areaFuncs[i](3.0)); // 以半径、边长等参数调用不同函数
    }

    return 0;
}

areaFuncs[i](3.0)(*areaFuncs[i])(3.0) 在语义上是等价的,都是通过函数指针调用函数并传递参数。两者的区别在于语法上的书写风格。

  1. areaFuncs[i](3.0)这种写法将函数指针 areaFuncs[i] 直接当作函数名来使用,后面跟上参数列表,就好像在调用普通函数一样。编译器会自动将这种写法转换为函数指针的调用。

  2. (*areaFuncs[i])(3.0)这种写法使用了解引用操作符 *,将函数指针解引用,然后再用括号将解引用后的函数指针与参数列表括起来。这种写法更显式地表示对函数指针的解引用操作。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击