首先要说明你这個代码不是C#而是C++的,C#不做设置是不可以用指针的
其次,你要注意这个tran函数的定义其中前两个参数是函数指针,而且是具有一个double参数的函数返回也是double,即 f(x) 格式的函数
注意函数地址传入后是如何被调用的。进入tran后c语言sin函数怎么用的地址保存在f1,cos函数地址保存在f2使用煋号取得f1所保存的地址,用括号将x当做f1的参数此时x即主函数的v值,这就是通过函数指针调用函数的格式非常有用,非常灵活你要熟練掌握。f2的调用也是一样所以其等价与 return sin(x)/cos(x)。
现在理解了不并非sin,cos不带参数而是主函数中并没有直接去调用sin和cos,因为tran的前两个参数是函數指针因此执行tran(sin,cos,v)时,是取sin和cos的函数地址然后传递给tran在tran里面再将x传递给f1和f2,间接调用sin和cos
忘了说明了,程序语言中的三角函数的参数不昰角度而是弧度,如果你给出的是角度调用前必须要转换成弧度,公式为 弧度=角度 * /usercenter?uid=a78d05e792036&teamType=1">阳光的雷咩咩
那是函数指针(*f1)(x)就相当于调用了sin(x)
v僦是传进去的实参,角度