解析C++函数的默认参数和占位参数及较之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;
} 

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索c++
, 函数
, 默认参数
占位参数
c语言命令行参数解析、url解析参数 c语言、c语言参数解析、c语言占位符、c语言占位符大全,以便于您获取更多的相关知识。

时间: 2024-08-21 09:39:49

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

深入解析Radix Sort基数排序算法思想及C语言实现示例_C 语言

基本思想: 将待排数据中的每组关键字依次进行桶分配. 具体示例: 278.109.063.930.589.184.505.269.008.083 我们将每个数值的个位,十位,百位分成三个关键字: 278 -> k1(个位)=8,k2(十位)=7,k3=(百位)=2. 然后从最低位个位开始(从最次关键字开始),对所有数据的k1关键字进行桶分配(因为,每个数字都是 0-9的,因此桶大小为10),再依次输出桶中的数据得到下面的序列. 930.063.083.184.505.278.008.109.58

深入解析C++中的函数模板和函数的默认参数_C 语言

C++函数模板 我们知道,数据或数值可以通过函数参数传递,在函数定义时它们是未知的,只有在发生函数调用时才能确定其值.这就是数据的参数化. 其实,数据类型也可以通过参数来传递,在函数定义是可以不指明具体的数据类型,当发生函数调用时,编译器可以根据传入的参数自动确定数据类型.这就是数据类型参数化. 所谓函数模板,实际上是建立一个通用函数,其返回值类型和形参类型不具体指定,用一个虚拟的类型来代替(实际上是用一个标识符来占位).这个通用函数就称为函数模板(Function Template).凡是函数

《深入理解C++11:C++ 11新特性解析与应用》——2.11 模板函数的默认模板参数

2.11 模板函数的默认模板参数 类别:所有人 在C++11中模板和函数一样,可以有默认的参数.这就带来了一定的复杂性.我可以通过代码清单2-26所示的这个简单的模板函数的例子来回顾一下函数模板的定义. 在代码清单2-26中,当编译器解析到函数调用fun(1)的时候,发现fun是一个函数模板.这时候编译器就会根据实参1的类型const int推导实例化出模板函数void TempFun(int),再进行调用.相应的,对于fun("1")来说也是类似的,不过编译器实例化出的模板函数的参数

C++中函数的默认参数详细解析_C 语言

使用方法:(1)在函数声明或定义时,直接对参数赋值,该参数就是默认参数.(2)在函数调用时,省略部分或全部参数,这时就会使用默认参数进行代替. 注意事项:(1)一般在声明函数是设置默认参数. 如果在函数声明和定义函数时都设置了默认参数,则以函数声明的默认参数为准. 复制代码 代码如下: #include<iostream>using namespace std;int main(){ double add(double a=3.2,double b=9.6);//在函数声明时设置默认参数 co

实例讲解在C++的函数中变量参数及默认参数的使用_C 语言

包含变量参数列表的函数如果函数声明中最后一个成员是省略号 (...),则函数声明可采用数量可变的参数.在这些情况下,C++ 只为显式声明的参数提供类型检查.即使参数的数量和类型是可变的,在需要使函数泛化时也可使用变量参数列表.函数的系列是一个使用变量参数列表的函数的示例.printfargument-declaration-list 包含变量参数的函数 若要访问声明后的参数,请使用包含在标准包含文件 STDARG.H 中的宏(如下所述). 采用数量可变的参数的函数声明至少需要一个占位符参数(即使

从汇编看c++函数的默认参数的使用说明_C 语言

在c++中,可以为函数提供默认参数,这样,在调用函数的时候,如果不提供参数,编译器将为函数提供参数的默认值.下面从汇编看其原理. 下面是c++源码: 复制代码 代码如下: int add(int a = 1, int b = 2) {//参数a b有默认值    return a + b;}int main() {   int c= add();//不提供参数 } 下面是mian函数里面的汇编码: 复制代码 代码如下: ; 4    : int main() {     push    ebp 

python 函数参数的传递(参数带星号的说明)

原创地址:http://www.cnblogs.com/smiler/archive/2010/08/02/1790132.html python中函数参数的传递是通过赋值来传递的. 函数参数的使用又有俩个方面值得注意: 1.函数参数是如何定义的  2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要有四种方式:1.F(arg1,arg2,...)这 是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必

详解在C++中显式默认设置的函数和已删除的函数的方法_C 语言

在 C++11 中,默认函数和已删除函数使你可以显式控制是否自动生成特殊成员函数.已删除的函数还可为您提供简单语言,以防止所有类型的函数(特殊成员函数和普通成员函数以及非成员函数)的参数中出现有问题的类型提升,这会导致意外的函数调用. 显式默认设置的函数和已删除函数的好处 在 C++ 中,如果某个类型未声明它本身,则编译器将自动为该类型生成默认构造函数.复制构造函数.复制赋值运算符和析构函数.这些函数称为特殊成员函数,它们使 C++ 中的简单用户定义类型的行为如同 C 中的结构.也就是说,可以创

python下函数参数的传递(参数带星号的说明)_python

函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要有四种方式: 1.F(arg1,arg2,...) 这 是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必须在函数名后的小括号里提供个数相等的 值(实际参数),而且顺序必须相同,也就是说在这种调用方式中,形参和实参的个数必须一致,而且必须一一对应,也就是说第一个形参对应这第一个实参.例 如