#include <iostream>
using namespace std;
char *left(const char * str, int n = 1);
// 重要作用: 默认参数可以让你使用不同的参数调用同一个函数。
//默认参数值必须从右向左给出,中间不能有间隔。
//如 flet(int a, int b int c = 1)正确
// left(int a = 1, int b, int c = 1) 错误。
// left(int a = 1, int b , int c) 错误
//就是编译器从右边向左边,当发现有一个变量没有默认参数时, 他认为后面的参数都没有默认参数,不进行默认参数的处理,
//因此,将出现错误。
int main()
{
char str[100];
cin.get(str, 100);
char *ps = left(str, 4);
cout<<ps<<endl;
delete [] ps;
ps = left(str);
cout<<ps<<endl;
delete [] ps;
return 0;
}
char *left(const char *str, int n) {
int i;
if(n < 0)
n = 0;
char *p = new char[100];
for(i = 0; str[i] && i < n; i++) //i的跳出条件一定是条件不满足是;
p[i] = str[i];
if(i <= n)
p[i] = '\0';
return p;
}
c++默认参数问题
最新推荐文章于 2022-03-12 22:50:35 发布