C++函数参数小结
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)
{
}
|
评论暂时关闭