c - 我怎样才能传递以下论点,它是什么类型的?
问题描述
我对 C 语言比较陌生,找到了这个问题的代码。你如何传递double (*f)(double)
函数的参数以及指针是如何工作的?
这是功能:
double derivative(double (*f)(double), double x0, int order)
我的猜测是,首先你需要类似的东西:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
double f(double x){
return pow(x,2);
}
int main(){
double x = 2;
int order = 2;
derivative(f(x), x , 2);
}
我试过了,但没有用。谢谢您的帮助。
解决方案
double (*f)(double)
是一个函数指针。这意味着您需要传递一个指向(或只是名称)函数的指针。在您的尝试中,您正在调用该函数,然后传递返回值,这是不正确的。
正确的方法是:
derivative(f, x, 2);
推荐阅读
- python - 如何分组数据框并将列用作值
- django - 如何在Django中制作类似矩阵的表格
- javascript - 当缓存被硬重新加载时,我的 toggleClass 函数有时仅适用于我的 JSON 创建的字段
- javascript - 如何检查传递的对象是否是 MarkLogic 中的有效 JSON?
- jquery - 单击焦点图像以外的任何其他位置后,是否有任何保持 .class:focus{--} 属性的 CSS 属性
- javascript - *ngFor - 无法动态呈现项目 - Angular 6 - Mat-menu 按钮
- jenkins-x - 无法提取图像“draft:dev”
- android - 如何在我的 Flutter 项目中迁移到 AndroidX?
- java - 选择时如何在网格视图中放大图像
- liferay - Liferay 7.1 - 复制默认主题的问题