函数名作为函数的参数到底有什么好处
今天装修百科网给各位分享带参函数的作用有哪些的知识,其中也会对函数名作为函数的参数到底有什么好处(函数名做参数)进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在我们开始吧!
函数名作为函数的参数到底有什么好处
看情况,通常是为了 程序紧凑,对程序思路主线条,阅读和理解起来容易一些。
例如,解方程 或 迭代法,打算用 多种方法。
主要程序看上去 是 解方程, 函数参数 是 方法,实际参数 是方法A, 或方法 B, 或方法 C 等等。程序开发时 可以 有 几个 人协作,自己写方法 A, 甲写 方法 B, 乙写 方法 C, ....
然后合起来。
下面用简单的例子,说明这个 思路。例子是 编写 2 个 数 的 加减乘除 运算。
函数叫四则运算,参数 是 函数名,数 a, 数 b.
#include
typedef float(*pfun)(float,float); // 定义函数指针
float f(pfun p,float a,float b) { return p(a,b); } // 四则运算函数
float add(float a,float b){ return a+b;} // 将用作实际参数的 加法 函数定义
float sub(float a,float b){ return a-b;} // 将用作实际参数的 减法 函数定义
float mlt(float a,float b){ return a*b;} // 将用作实际参数的 乘法 函数定义
float div(float a,float b){ return a/b;} // 将用作实际参数的 除法 函数定义
int main(){
float a,b;
printf("input a b\n");
scanf("%f %f", &a,&b);
printf("a + b = %g\n",f(add,a,b));
printf("a - b = %g\n",f(sub,a,b));
printf("a * b = %g\n",f(mlt,a,b));
printf("a / b = %g\n",f(div,a,b));
return 0;
}
例如:
input a b
输入 6 5
输出:
a + b = 11
a - b = 1
a * b = 30
a / b = 1.2
我是新手请教带参数的构造函数有什么作用吗
构造函数是用来初始化用的,当然可以带参数了。初始化作用,可以带参数,参数类型和个数不同的的话可以进行构造函数重载。
系统自带的构造函数是不带参数的,自己写的话就写成带参构造了。
主要起初始化对象的作用,构造函数可以带参数,起使用方法和普通方法相同,但不能有返回值和返回类型。
****对象的创建需要三步,但是我只记得两步,一是申请内存,得到对象的地址,付给this指针,二就是初始化这块内存,构造函数就是用来完成第二步的。可以带参数。用“this指针”这个说法只是为了方便说明,实际上****对象在其生命周期内,this的值,或者说对象的真实地址是可以变化的。不过这些是GC的事情,不用程序员操心。
如果不显式提供构造函数,那么编译器会帮你写一个,这个构造函数是public且无参的,如果你提供了构造函数,不管他是不是public,编译器都不再会帮你编写构造函数。
C语言中主函数的参数有什么作用?
1.main函数是程序的入口函数,每次程序执行都是从main,很多地方main函数都会带有参数:main (int argc,char *argv[])
2.简单的来说mian函数就是带有两个参数,第一个参数是一个整型变量,第二个参数是一个指向字符串的指针数组。
3.这里的参数由操作系统来调用,并给它们赋值。
4.现在的操作系统都是图形化的,参数的调用基本都隐藏起来,不过可以借助DOS来理解:
在DOS操作系统中输入这样的命令:C:>可执行文件名 参数参数……;
5.操作系统调用C语言的程序也是这样调用的。第一个参数argc代表命令中参数的个数,文件名也算上。argv就是存储这些参数的。
