三合一网站什么意思,公司给别人做的网站违法的吗,网站和微信同步建设,做网站二维码文章目录 缺省参数的概念缺省参数的分类1、全缺省参数2、半缺省参数 缺省参数实际应用场景 缺省参数的概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时#xff0c;如果没有指定实参则采用该形参的缺省值#xff0c;否则使用指定的实参 正常调用一… 文章目录 缺省参数的概念缺省参数的分类1、全缺省参数2、半缺省参数 缺省参数实际应用场景 缺省参数的概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时如果没有指定实参则采用该形参的缺省值否则使用指定的实参 正常调用一个函数
//正常调用一个函数实参传递给形参
void func(int i)
{cout i endl;
}int main()
{func(1);func(2);func(3);
}加入缺省参数 缺省参数就相对一个备胎实参没传值过来那么形参就用缺省参数给的值 打印结果 void func(int i 0)
{cout i endl;
}int main()
{func(1);func(2);func();
}缺省参数的分类
1、全缺省参数
//全缺省参数
void func(int a 10,int b 20,int c 30)
{cout a endl;cout b endl;cout c endl;
}int main()
{func();cout endl;func(1);cout endl;func(1,2);cout endl;func(1, 2, 3);cout endl;return 0;
}打印结果 注意千万不能这样写这是c语法不支持的 2、半缺省参数
//半缺省参数
void func(int a, int b 20, int c 30)
{cout a endl;cout b endl;cout c endl;
}int main()
{cout endl;func(1);cout endl;func(1, 2);cout endl;func(1, 2, 3);cout endl;return 0;
}打印结果 注意必须从左往右连续缺省 千万不能这样 缺省参数实际应用场景 举一个例子利用 缺省参数 实现数据结构中的 栈(Stack) 初始化 之前用C语言来实现这个初始化是这样的
struct Stack
{int* a;int top;//栈顶int capacity;//栈的容量
};void StackInit(struct Stack* ps)
{ps-a NULL;//pst-top -1; // top 指向栈顶数据ps-top 0; // top 指向栈顶数据的下一个位置ps-capacity 0;
}这里的capacity(容量) 就直接初始化为0了因为在之前栈实现是动态开辟容量空间的当一个元素入栈就会先检查空间是否足够如果不够就再来增加容量这种情况是当你不知道要入多少元素到栈里面去你只能每次入栈前就先检查一下容量是否足够如果不够往往容量空间是成倍数的增加的当你不在需要入元素进栈就会产生一定的空间浪费 现在这种利用缺省参数的形式在你确认需要入多少个元素的情况下直接把capacity定义为缺省参数例如下面的方式
struct Stack
{int* a;int top;//栈顶int capacity;//栈的容量
};void StackInit(struct Stack* ps, int capacity 4)
{ps-a (int*)malloc(sizeof(int) * capacity);ps-top 0;ps-capacity capacity;
}int main()
{struct Stack st;StackInit(st, 100);
} 现在知道一定会插入100个数据就可以显示传参数100提前开好空间避免空间扩容这个步骤减少空间的浪费