c++函数声明里面带有默认值的小问题
c++函数声明里面带有默认值的参数在下面的使用中为什么在定义实参的时候可有可无!!而没有定义形参默认值的却个数一定要符合形参里面的个数这个是为什么那么函数定义有默认值和没...
c++函数声明里面带有默认值的参数在下面的使用中为什么在定义实参的时候可有可无!!而没有定义形参默认值的却个数一定要符合形参里面的个数这个是为什么那么函数定义有默认值和没有默认值哪个使用更加方便点!
展开
2013-08-13
展开全部
有默认参数的时候,如果实参没有传参数进来,就会使用默认参数.如函数void fun(int i,int j=2)j有默认参数2可以这样调用:fun(1)这时候其实i=1,j=2.没有传j的值就会使用默认值,即2也可以这样调用:fun(1,3)这时候i=1,j=3, 有传j的值就使用传进来的值.如果在有必要的情况下,使用默认参数更方便.就是指参数有需要默认值的时候就使用默认参数.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-13
展开全部
#include <stdio.h>
// n个元素以2个一组进行处理,有n/2组
// 2个元素之间比较1次,取当前最大最小值各比较一次
// 一共3次,所以最多执行3n/2次比较
void minmax(int* a, int n, int* min, int* max)
{
int tmin, tmax;
if(n & 1)
*min = *max = a[--n];
else {
if(a[n-1] < a[n-2])
*min = a[n-1], *max = a[n-2];
else
*min = a[n-2], *max = a[n-1];
n -= 2;
}
while(n >= 1) {
if(a[n-1] < a[n])
tmin = a[n-1], tmax = a[n];
else
tmin = a[n], tmax = a[n-1];
if(tmin < *min)
*min = tmin;
if(tmax > *max)
*max = tmax;
n -= 2;
}
}
int main()
{
int a[] = {5,1,3,9,2,6,0,8,4,7};
int min, max;
minmax(a, 10, &min, &max);
printf("min:%d max:%d\n", min, max);
return 0;
}
回答完毕,希望对你的提问有帮助,如果满意请采纳o(∩_∩)o...哈哈
// n个元素以2个一组进行处理,有n/2组
// 2个元素之间比较1次,取当前最大最小值各比较一次
// 一共3次,所以最多执行3n/2次比较
void minmax(int* a, int n, int* min, int* max)
{
int tmin, tmax;
if(n & 1)
*min = *max = a[--n];
else {
if(a[n-1] < a[n-2])
*min = a[n-1], *max = a[n-2];
else
*min = a[n-2], *max = a[n-1];
n -= 2;
}
while(n >= 1) {
if(a[n-1] < a[n])
tmin = a[n-1], tmax = a[n];
else
tmin = a[n], tmax = a[n-1];
if(tmin < *min)
*min = tmin;
if(tmax > *max)
*max = tmax;
n -= 2;
}
}
int main()
{
int a[] = {5,1,3,9,2,6,0,8,4,7};
int min, max;
minmax(a, 10, &min, &max);
printf("min:%d max:%d\n", min, max);
return 0;
}
回答完毕,希望对你的提问有帮助,如果满意请采纳o(∩_∩)o...哈哈
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-08-13
展开全部
1.一般情况下,实参个数与形参个数相同。C++允许不同。办法是在形参表列中对一个或者几个形参指定默认值。而且要放在形参表列最右断。 2.例如:void func(int a,int b,int c=1);调用的时候可以 func(2,4,6); 这时 a=2;b=4;c=6;也可以 func(2,4); 这时 a=2;b=4;c=1;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询