首页 > 解决方案 > int return 类型的递归函数 c++,即使它的主体上没有返回指令,steel 也能工作

问题描述

euclid 函数用于获取两个数的最大公约数,假设第一个数大于第二个数。euclid 函数被定义为返回一个 int 值。即使在它的主体中没有返回指令,这个函数在 C++ 中也能正常工作。(您也可以在线查看:https ://www.onlinegdb.com/online_c++_compiler )。为什么我有这种行为。我正在等待编译器错误或收到意外值。

#include <iostream>

using namespace std;
int euclid(int a,int b)
{
    if(b==0)
        b=a;
    else
        euclid(b,a%b);
}
int main()
{
    int a,b;
    a=20;
    b=5;
    cout<<"cmmdc dintre a si b este: "<<euclid(a,b);
    return 0;
}

标签: c++

解决方案


推荐阅读