解析C++函数的默认参数和占位参数及较之C语言的拓展

 更新时间:2016年03月14日 14:50:32   作者:YoferZhang  
这篇文章主要介绍了C++中的默认参数和占位参数及较之C语言的拓展,需要的朋友可以参考下

可以将占位参数与默认参数结合起来使用
意义:
为以后程序的扩展留下线索
兼容C语言程序中可能出现的不规范写法

//C++可以声明占位符参数,占位符参数一般用于程序扩展和对C代码的兼容 
int func(int a, int b, int = 0) 
{ 
  return a + b; 
} 
void main() 
{ 
  //如果默认参数和占位参数在一起,都能调用起来 
  func(1, 2); 
  func(1, 2, 3); 
  system("pause"); 
} 


默认参数对C的函数拓展
1.C++中可以在函数声明时为参数提供一个默认值,
当函数调用时没有指定这个参数的值,编译器会自动用默认值代替

void myPrint(int x = 3) 
{ 
  printf("x:%d", x); 
} 

2.函数默认参数的规则
只有参数列表后面部分的参数才可以提供默认参数值。一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参数都必须使用默认参数值:

//默认参数 
void printAB(int x = 3) 
{ 
  printf("x:%d\n", x); 
} 
 
//在默认参数规则 ,如果默认参数出现,那么右边的都必须有默认参数 
void printABC(int a, int b, int x = 3, int y=4, int z = 5) 
{ 
  printf("x:%d\n", x); 
} 
int main(int argc, char *argv[]) 
{ 
  printAB(2); 
  printAB(); 
  system("pause"); 
  return 0; 
} 

 


默认参数对C的函数拓展
1.C++中可以在函数声明时为参数提供一个默认值,当函数调用时没有指定这个参数的值,编译器会自动用默认值代替:

void myPrint(int x = 3) 
{ 
  printf("x:%d", x); 
} 

2.函数默认参数的规则:
只有参数列表后面部分的参数才可以提供默认参数值。
一旦在一个函数调用中开始使用默认参数值,那么这个参数后的所有参数都必须使用默认参数值。

//默认参数 
void printAB(int x = 3) 
{ 
  printf("x:%d\n", x); 
} 
 
//在默认参数规则 ,如果默认参数出现,那么右边的都必须有默认参数 
void printABC(int a, int b, int x = 3, int y=4, int z = 5) 
{ 
  printf("x:%d\n", x); 
} 
int main(int argc, char *argv[]) 
{ 
  printAB(2); 
  printAB(); 
  system("pause"); 
  return 0; 
} 

相关文章

  • VC基于ADO技术访问数据库的方法

    VC基于ADO技术访问数据库的方法

    这篇文章主要介绍了VC基于ADO技术访问数据库的方法,较为详细的分析了VC使用ADO操作数据库的相关实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • 利用Matlab绘制地图的超详细教程

    利用Matlab绘制地图的超详细教程

    worldmap和usamap是axesm的子类,worldmap是用于生成世界地图坐标区域,usamap用于生成美国地图坐标区域。本文将详细为大家介绍如何利用这两个函数绘制地图,需要的可以参考一下
    2022-02-02
  • C++11 关键字 const 使用小结

    C++11 关键字 const 使用小结

    const大致意思是“我承诺不改变这个值”。主要用于说明接口,这样在把变量传入函数时就不必担心变量会在函数内被改变,本文给大家介绍C++11 关键字 const 使用小结,感兴趣的朋友一起看看吧
    2021-12-12
  • 手把手带你学习C++的运算符

    手把手带你学习C++的运算符

    这篇文章主要为大家介绍了C++运算符,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助,希望能够给你带来帮助
    2021-11-11
  • C++扑克牌的洗牌发牌游戏设计

    C++扑克牌的洗牌发牌游戏设计

    这篇文章主要为大家详细介绍了C++扑克牌的洗牌发牌游戏设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Java C++ 算法题解leetcode145商品折扣后最终价格单调栈

    Java C++ 算法题解leetcode145商品折扣后最终价格单调栈

    这篇文章主要介绍了Java C++ 算法题解leetcode145商品折扣后最终价格单调栈示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Qt编写地图迁徙图的实现示例

    Qt编写地图迁徙图的实现示例

    本文主要介绍了Qt编写地图迁徙图的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • C++实现LeetCode(25.每k个一组翻转链表)

    C++实现LeetCode(25.每k个一组翻转链表)

    这篇文章主要介绍了C++实现LeetCode(25.每k个一组翻转链表),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • c语言全盘搜索指定文件的实例代码

    c语言全盘搜索指定文件的实例代码

    c语言全盘搜索指定文件的实例代码,需要的朋友可以参考一下
    2013-03-03
  • C语言模拟实现memmove的示例代码

    C语言模拟实现memmove的示例代码

    memmove函数用于拷贝字节,如果目标区域和源区域有重叠的话,memmove能够保证源串在被覆盖之前将重叠区域的字节拷贝到目标区域中,但复制后源内容会被更改。本文主要介绍了C语言模拟实现memmove的示例代码,需要的可以参考一下
    2022-12-12

最新评论