c++ - 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;
}
解决方案
推荐阅读
- java - 使用 SwingWorker 输出数据
- c# - 空输入发送到 Oracle 函数
- facebook - 无法使用测试用户创建 facebook 测试页面
- html - 媒体查询不起作用且页面没有响应
- angular - 将一个组件插入 CDK 门户
- java - java和kotlin之间的泛型!!帮我?
- javascript - 提取多个链接并使用 JQuery 在控制台中单击
- javascript - 当我在旧版本的写字板中打开文件时,某些字符会发生变化
- linux - 如何在centos linux上自动同步目录
- python - 如何使用 ODBC 链接 SQL 数据库并在 Python 中进行 SQL 查询