扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
C语言没有标准的max和min函数。
电白网站制作公司哪家好,找创新互联公司!从网页设计、网站建设、微信开发、APP开发、响应式网站开发等网站项目制作,到程序开发,运营维护。创新互联公司自2013年创立以来到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联公司。
常规情况下,几乎所有的编译器使用宏来实现 max() 及 min() 函数,
它们一般在 stdio.h 这份文件中以宏方式被声明。
使用宏来实现的原因一般是因为这两个函数非常简单,
它们一般的实现如下:
#define max(a,b) ( ((a)(b)) ? (a):(b) )
#define min(a,b) ( ((a)(b)) ? (b):(a) )
使用宏的另外一个好处是使得该函数具备了“重载”功能,
可以让传递的参数不局限于某种类型(只限基本类型-非结构类型),如 int 或 char。
max里的叫形参,可以随便用哪个都一样的,大概你是新手,不知道什么是形参和实参吧~
形参与实参的区别:
高级语言在设计程序模块时,模块名定义后,紧跟其后所定义的参数(括弧内)被称为形参(也称虚参)。当该模块被调用时,在主调模块中,出现在被调用的模块名后的参数被称为实参。实参代替虚参的过程被称为虚、实结合,也称换参。多数高级语言的换参是由编译系统来完成,比如C语言和FORTRAN语言亦是如此。BASIC语言的换参则是由程序设计人员来完成的。如果只允许实参向虚参传递,则被称为“单向传递”,C语言的变量类虚、实结合即是“单向传递”。如果同时允许虚参向实参传递,这种传递被称为“双向传递”,FORTRAN 语言定义的子程序即是如此。 当C语言的形参为数组时,形参不另辟存储单元,形参与实参共用内存存储单元。这样,可以节省内存。 C语言在定义函数的同时,对于有参函数,也同时定义了形参。在调用该函数的同时,也指明了实参。实参与形参在内存分别占有两套不同的存储单元(数组除外),但是形参只有在函数被调用过程中才分配存储单元,调用结束后形参占用的单元被释放。数组元素作为实参时,也做为变量来处理。
1、比较三个数的max函数:
int max(int a,int b,int c){
return (ab?a:b)c?(ab?a:b):c;
}
int main(){
int a=1,b=3,c=2;
printf("最大值为:%d\n",max(a,b,c));
return 0;
}
2、max函数的几种形式:
(1)max(a)
(2)max(a,b)
(3)max(a,[],dim)
(4)[C,I]=max(a)
(5)[C,I]=max(a,[],dim)
1、max函数不是一个C语言里提供给的函数,而是程序员自己定义的。一般来说,max函数是用来求一组数据中的最大值。
2、例如:
int max(int a,int b)
{
if (ab)
return a;
else
return b;
}
// 或者用更简单的:
int max(int a,int b)
{
return ab?a:b;
}
//或者使用宏定义:
#define MAX(a,b) (ab)?(a):(b)
main()
{
int x,y,z,max;
printf("input two numbers:\n");
scanf("%d%d",x,y);
z=MAX(x,y);
printf("maxnum=%d",z);
getch();
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流