函数声明了返回类型,但是在函数体中没有return语句,却返回了正确的值,为什么?

i32 findIntSec(f64 in_x, f64 tb_X[],i32 N)
{
    i32 re_up;
    if (in_x < tb_X[0]) //若插值点在区间左侧,返回第一个点与第二个点之间的插值结果
    {
        re_up= 1;
    }
    else if (in_x >= tb_X[N - 1]) //若插值点在区间右侧,返回最后一个点与倒数第二个点之间的插值结果
    {
        re_up = N - 1;
    }
    else
    {
        for (int i = 0; i <= (N - 1); i++) //寻找插值点所在的区间
        {
            if ((in_x >= tb_X[i]) && (in_x < tb_X[i + 1]))
            {
                re_up = i + 1;
                break;
            }
        }
    }
    // return re_up;
}

在写c++程序时,遇到这样一个问题:在执行以下代码时,调用了findIntSec()函数,但是findIntSec()函数里面没有return语句,却得到了正确的返回值,这是为什么呢?

Idx1_up = findIntSec(in_x1, tb_X1, N1)

 

怎么可能,编译都通不过啊,别说返回正确值了

可能你执行的程序和代码不是一个版本吧

是不是你注释return语句后没有重新编译呢?

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632