函数的默认参数
来源:互联网 发布:淘宝钻展怎么弄啊 编辑:程序博客网 时间:2024/05/17 01:09
默认参数指的是当函数调用中省略了实参时,自动使用的一个值
例如,如果将函数 void wow(int n) 设置成 n 默认值为1,则调用函数 wow ( ) 相当于 wow(1)
1.如何设置默认值?必须通过函数原型。例如,函数 left ( ) 的原型如下,此函数输入一个字符串,并返回字符串的前 n 个字符:
char* left( const char* str ,int n=1);
由于该函数返回一个新的字符串,所以其返回值类型为 char* ;希望输入一个字符串而不希望改变它,所以使用 const 限定符;同时,希望函数默认返回第一个字符,所以将默认值设置为1,即省略n这个参数时,它的值是1,否则传递的 n 值会将1覆盖;
2.对于带参数列表的函数,设置默认值时,必须从右到左添加默认值,也就是说,要为某一个参数设置默认值,必须为它右边的所有参数提供默认值。 例如:
int harpo(int i=1, int m=2, int j=3); // validint harpo(int i=1, int m, int j); // invalid
harpo原型允许调用该函数时提供 0个,1个,2个或3个 参数;
3.实参按照从左到右的顺序被赋给形参,而不能跳过任何参数。
例如
b=harpo(1, ,3); // invalid
4.注意:只有原型指定了默认值,函数定义部分与没有默认参数时完全相同。
下面栗子意思是,编写一个函数实现功能:打印指定字符串的前 n 个字符。
#include <iostream>#include <cstring>const int Max=20;using namespace std;char* left(const char* str ,int n=1);int main(){ char str[Max]; cout<<"输入指定字符串:\n"; cin.getline(str,Max); cout<<"输出指定字符:\n"; char* result=left(str,4); cout<<result<<endl; delete [] result; return 0;}char* left(const char* str ,int n){ if (n<0) { n=0; } int m,i; //设置字符串长度的方法1 int len=strlen(str); m=(n<len) ? n:len; char* pt=new char [m+1]; //设置字符串长度的方法2 /* for(m=0;m<n && str[m];m++); char* pt=new char [m+1]; */ for (i=0;i<m && str;i++) { pt[i]=str[i]; } while (i<=m) { pt[i]='\0'; i++; } return pt;}
输入n=1为默认参数时,输出结果:
输入n=0时,输出结果空字符串:
输入n=4,4大于指定字符串的字符数目时,输出结果字符串是其本身:
输入n=2,输出结果字符串是其前2个字符:
此程序值得注意的是:设置字符串的方法:本例中提供了两种方法。
阅读全文
0 0
- 函数的默认参数
- 函数的默认参数
- 函数的默认参数
- 函数的默认参数
- 默认参数的函数
- 函数的默认参数
- 函数的默认参数
- 函数的默认参数
- 有默认参数的函数
- C++函数的默认参数
- 虚函数的默认参数
- 带默认参数的函数
- js函数的默认参数
- 带默认参数的函数 .
- 默认参数的构造函数
- 理解函数的默认参数
- c++函数的默认参数
- C++函数的默认参数
- java--面向对象
- Corporation。。保保留留所所有有权权利利。。
- 学界 | 斯坦福提出高速视频目标检测系统NoScope:速度超现有CNN上千倍
- Maven入门指南⑦:Maven的生命周期和插件
- H5页面开发,元素使用心得技巧
- 函数的默认参数
- 动归----相似基因
- Android item长按删除
- Python工具类
- C语言-将1到9这九个数字分成三个3位数,要求第一个3位数,正好是第二个3位数的1/2,是第三个3位数的1/3。问应当怎样分,编写程序实现。
- c# sspi authentication
- 基于Lua的游戏服务端框架简介
- 02 JS-DOM之--js的加载和window onload
- angular2 form