为什么只有在直接打印一次字符串后,控制台才会显示调用函数打印的数组字符串

这是正常代码,但打印不出来

#include <iostream>
using namespace std;

int i = 0;
void show(const char* str, int sth = 0);

int main()
{
    char str[20] = "hello again,world!";
    show(str);
    show(str,2);
    return 0;
}

void show(const char* str, int sth)
{
    i++;
    if(sth == 0)
    {
        cout << str << endl;
    }
    else
    {
        for(int n=i; n>0; n--)
        {
            cout << str << endl;
        }
    }
}

打印结果如图图片说明

这是加了一个直接打印字符串的代码后

#include <iostream>
using namespace std;

int i = 0;
void show(const char* str, int sth = 0);

int main()
{
    char str[20] = "hello again,world!";
    show(str);
    show(str,2);
    return 0;
}

void show(const char* str, int sth)
{
    cout << "??什么问题??";
    i++;
    if(sth == 0)
    {
        cout << str << endl;
    }
    else
    {
        for(int n=i; n>0; n--)
        {
            cout << str << endl;
        }
    }
}

打印结果如图图片说明

在函数定义时把默认值也加入后,编译器就会检测出错误,如图:
图片说明
错误
图片说明

c++

1个回答

void show(const char* str, int sth)
->
void show(const char* str, int sth = 0)
否则sth是随机值,特别是可能是负数

导致无法输出

weixin_44616497
九穗禾 我试过了,结果编译器检测出错误了...图我补充在问题最后了,可以麻烦再看一下吗
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

1
用C语言如何解决:对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串
2
为什么Java在传递路径字符串时,显示为空指针?
2
微信小程序页面间传json字符串后使用JSON.parse方法无法解析json字符串
1
eclipse的长字符串不显示,为什么?
1
输入一个字符串,可以删除字符串s中的任意字符,剩下的字符串形成对称字符串,且该字符串为最长对称字符串
2
指定位置输出字符串:输入一个字符串后再输入两个字符,输出此字符串中从与第一个字
4
字符串是A,B 后台要把字符串写到sql里,所以字符串要转为'A','B' 查询用的JdbcTemplate
3
JS十六进制字符串转字符串问题
1
为什么 使用指针修改字符串中的字符 运行结果出问题?
3
vue+element-ui怎么将base64字符串显示成图片啊
1
求大佬指教:为什么npm run build打包后,js代码中的字符串没有被混淆加密?有没有什么解决办法?
3
Php 中单引号字符串和双引号字符串的区别是什么?
7
如何在 Java 中分割字符串?
0
回文串,对于一个字符串的判断最长的算法,用C语言
2
求一个字符串中出现次数最多的数字之和?
1
字符指针 为什么读取一次字符串后,后面的代码无法执行?
2
请问java中switch的case语句里,为什么输入字符串只能用next()命令呢?
1
graphic能实现竖排字符串的输出吗
0
统计一个给定字符串中指定的字符出现的次数
1
url查询字符串中参数的类型是都会被浏览器解析为字符串类型吗?