为了账号安全,请及时绑定邮箱和手机立即绑定

关于调用函数赋初值的疑问?

void fun(int i,int j=10,int k=5)

void fun(i,j,k)

{

cout<<i<<j<<k<<endl;

}

int main()

{

fun();https://img1.sycdn.imooc.com//5ac0e1410001b9cb08070456.jpgfun(3,5);

fun(1,3,5)

fun(   ,3,5)      //不给第一个赋值如何处理?

}

正在回答

3 回答

不给第一个赋值的话,i位置实参不能什么都不写,C++语法上是没有这种调用形式的,这种写法本身就是错误的;

函数调用时只能是从左往右给值的;“,”前面不能为空,所以不管咋地,第一个的值都必须得写,

还有就是,在进行函数调用的时候,对于没有给出默认值的变量,则必须在调用时给出具体的值;对于已经给出默认值的变量,在调用时实参的值可给可不给;如果想要不给第一个赋值的话,如果给出第一个的默认值(则后面j,k的默认值也必须已经给出了)就不用给第一个赋值了,调用时就是fun();如果不给处第一个变量i的默认值,那调用时就必须得要写的呀,不然调用不了。(总之就是不可能直接不给第一个i赋值,而给j、k进行赋值)

???


1 回复 有任何疑惑可以回复我~
#1

斐珺孜 提问者

谢谢!很详细~
2018-04-02 回复 有任何疑惑可以回复我~
#2

斐珺孜 提问者

C++没有这种调用形式,其它语言有吗?
2018-04-02 回复 有任何疑惑可以回复我~
#3

___TINGWEN 回复 斐珺孜 提问者

应该都没有的吧.(其他语言不懂???)
2018-04-02 回复 有任何疑惑可以回复我~
#4

斐珺孜 提问者 回复 ___TINGWEN

留意一下,发现了告知我。我也会注意的~
2018-04-02 回复 有任何疑惑可以回复我~
查看1条回复

首先函数默认参数值的目的是对一些数据类型的变量进行“初始化”,目的是方便用户使用的,调用时可写可不写,根据用户需求来定。而对于不进行默认赋值的变量来说,是要求用户一定要去实现的,是硬性条件。

0 回复 有任何疑惑可以回复我~

应该都没有的吧.(其他语言不懂???

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之离港篇
  • 参与学习       122700    人
  • 解答问题       474    个

C++扫清通往面向对象的最后一道障碍,将所有知识点融会贯通

进入课程

关于调用函数赋初值的疑问?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信