C语言中缺省参数的类型总结
函数可以在定义时设置默认值(缺省参数),这样在调用时如果不传入该参数,则会使用默认值。本文将总结C语言中缺省参数的类型及相关应用。
基本语法
void function(int a, int b = 0, int c = 1) {
printf("%d %d %d", a, b, c);
}
function(1); // 1 0 1
function(1, 2); // 1 2 1
function(1, 2, 3); // 1 2 3
缺省参数类型
在C语言中,函数的缺省参数类型只能是常量,不能是变量。因为编译器在编译时需要知道缺省参数的值。常见的缺省参数类型包括:
- 整数类型:char、short、int、long、long long
- 浮点数类型:float、double
示例说明
示例一:计算平方和
#include <stdio.h>
// 计算a和b的平方和
int sum_of_square(int a, int b = 0) {
return a * a + b * b;
}
int main() {
printf("%d\n", sum_of_square(2)); // 4
printf("%d\n", sum_of_square(2, 3)); // 13
return 0;
}
在该示例中,我们定义了一个函数sum_of_square,其中b的默认值为0。在main函数中,我们分别调用了函数sum_of_square,并输出结果。当我们只传入一个参数2时,函数会使用b的默认值0计算平方和;当我们传入两个参数2和3时,函数会使用传入的参数计算平方和。
示例二:计算阶乘
#include <stdio.h>
// 计算n的阶乘
int factorial(int n, int result = 1) {
if (n > 0) {
result *= n;
factorial(n - 1, result);
} else {
return result;
}
}
int main() {
printf("%d\n", factorial(5)); // 120
printf("%d\n", factorial(3, 5)); // 30
return 0;
}
在该示例中,我们定义了一个递归函数factorial,其中result的默认值为1。在每一次递归时,我们将n乘上result,并将n减1继续递归。当n为0时,递归结束,函数返回result。在main函数中,我们分别调用了函数factorial,并输出结果。当我们只传入一个参数5时,函数会使用result的默认值1计算5的阶乘;当我们传入两个参数3和5时,函数会使用传入的参数5计算3的阶乘。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c语言中缺省参数的类型总结 - Python技术站