C++函数参数小结


一、函数形参–指针参数和数组参数的区别


作为函数形参的数组和指针可以互换 
这种转换仅限于函数形参的声明
这是一种便利,传递时数组会蜕变为指针,事实上数组从来没有传入过函数。
例子:以下3个声明是等价的
 void putValues(int *);
 void putValues(int[]);
 void putValues(int[10]);
备注:数组长度不是参数类型的一部分。函数和编译器都不知道传统给它的数组的长度的大小。

传入指定长度数组的一种简便方法

将参数声明为数组的引用,此时,数组长度成为形参和实参的一部分。例如:void putValues( int (&arr)[10])

二、默认参数值


默认参数值是一种在大多数情况下都适用的值。
函数声明可为全部或者部分参数提供默认值。
函数调用的实参按位置解析,默认参数只能用来替换函数调用缺少的尾部实参。
一个参数只能在一个文件里被指定一次默认实参。函数后续的声明中可以指定其他默认参数。可以在函数声明和定义处定义默认参数值。
默认参数可以用任意表达式指定。
例如:

---------------------ff1.h-----------------------------

 intff(int a, int b,int c=0);

 

--------------------ff2.h------------------------------

 #include “ff1.h”

 intgetValue();

 intff(int a, int b =getValue(), c);


--------------------ff2.cpp------------------------------

 #include “ff2.h”

intff(int a=0, int b,int c)

{

}

  • 1
  • 2
  • 下一页

相关内容