java 函数给默认值_函数参数的默认值

在C中,关于它们在参数列表中的位置对默认参数施加的要求如下:

必须指定给定参数的默认参数不超过一次 . 多次指定它(即使具有相同的默认值)是非法的 .

具有默认参数的参数必须在参数列表的末尾形成一个连续的组 .

现在,记住这一点,只要满足上述要求,就可以在C中“增长”具有默认参数的参数集,从一个函数声明到下一个声明 .

例如,您可以声明一个没有默认参数的函数

void foo(int a, int b);

为了在声明之后调用该函数,您必须明确指定两个参数 .

稍后(进一步向下)在同一翻译单元中,您可以再次重新声明它,但这次使用一个默认参数

void foo(int a, int b = 5);

从这一点开始,你可以用一个明确的参数来调用它 .

再向下,您可以重新声明它再次添加一个默认参数

void foo(int a = 1, int b);

从这一点开始,您可以在没有明确参数的情况下调用它 .

完整示例可能如下所示

void foo(int a, int b);

int main()

{

foo(2, 3);

void foo(int a, int b = 5); // redeclare

foo(8); // OK, calls `foo(8, 5)`

void foo(int a = 1, int b); // redeclare again

foo(); // OK, calls `foo(1, 5)`

}

void foo(int a, int b)

{

// ...

}

至于你问题中的代码,两种变体都是完全有效的,但它们意味着不同的东西 . 第一个变量立即声明第二个参数的默认参数 . 第二个变体最初声明您的函数没有默认参数,然后为第二个参数添加一个 .

两个声明的净效果(即第二个声明后面的代码看到的方式)完全相同:函数的第二个参数有默认参数 . 但是,如果您设法在第一个和第二个声明之间挤压一些代码,则这两个变体的行为会有所不同 . 在第二个变体中,函数在声明之间没有默认参数,因此您必须明确指定两个参数 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值