2302_79933334 2023-12-23 13:48 采纳率: 81.3%
浏览 5
已结题

c语言函数体的返回值

为什么if语句里要加return;
return;的作用是什么,
void不是不返回值吗,为什么去掉return;会提示段错误

void printdigits(int n)
{
    if(n/10==0){
        printf("%d\n",n);
    return;
    }
    printdigits(n/10);
    printf("%d\n",n%10);
}

  • 写回答

3条回答 默认 最新

  • threenewbee 2023-12-23 13:51
    关注

    这是递归,如果n已经是小于10了,不需要继续处理 n/10,所以不执行后面的代码,直接返回。
    其实关键在于不执行后面的printdigits(n/10); 而 return 并不是关键,完全可以不写 return,通常我们这么写:
    之所以用 return 只是这个代码编写者的一种偏好

    void printdigits(int n)
    {
        if(n/10==0){
            printf("%d\n",n);
        }
        else
        {
            printdigits(n/10);
            printf("%d\n",n%10);
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月2日
  • 已采纳回答 12月25日
  • 创建了问题 12月23日

悬赏问题

  • ¥15 WPF动态创建页面内容
  • ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
  • ¥15 SQL数据库操作问题
  • ¥100 关于lm339比较电路出现的问题
  • ¥15 Matlab安装yalmip和cplex功能安装失败
  • ¥15 加装宝马安卓中控改变开机画面
  • ¥15 STK安装问题问问大家,这种情况应该怎么办
  • ¥15 关于罗技鼠标宏lua文件的问题
  • ¥15 halcon ocr mlp 识别问题
  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线