Q1:函数中的Return语句有什么用?

Q2Return 0有什么含义吗?

A1Return的作用为,跳出当前的函数,并且返回到调用当前函数的主调函数,当前函数中Return语句一下代码将不会运行,因为代码运行过程已经返回到主调函数中去了,而不是当前的函数

A1代码验证:

点击查看代码
#include <stdio.h>

int test_return(int num_1, int num_2);

int main(){
int num_1, num_2;
printf("Please enter two number:\n");
scanf("%d%d", &num_1, &num_2);
test_return(num_1,num_2);
printf("add = %d", test_return(num_1,num_2));
printf("\n");
return 0;
} int test_return(int num_1, int num_2){
return num_1 - num_2;
//两个不同的return来检验return的终止性
return num_1 + num_2;
}

输出结果:

我们可以发现,成功的输出了test_return( )函数的值,这说明主函数main( )在调用了函数test_return( )后,又回到了主函数并且执行了语句:printf("add = %d", test_return(num_1,num_2));

这验证了A1中对return作用1的描述

在代码中我们可以发现,函数test_return( )中有两个返回值:

1:return num_1 - num_2;

2:return num_1 + num_2;

明显,输出只给出了return1中的值即:return num_1 - num_2;  这验证了A1中对return终止运行作用的描述

测试2:(将return1注释掉)

点击查看代码
#include <stdio.h>

int test_return(int num_1, int num_2);

int main(){
int num_1, num_2;
printf("Please enter two number:\n");
scanf("%d%d", &num_1, &num_2);
test_return(num_1,num_2);
printf("add = %d", test_return(num_1,num_2));
printf("\n");
return 0;
} int test_return(int num_1, int num_2){
//return num_1 - num_2;
//两个不同的return来检验return的终止性
return num_1 + num_2;
}

输出结果:

一个复杂一点的代码(用于理解return回溯到主调函数):

点击查看代码
#include <stdio.h>

int one_three(void);
int two(void);
int main(void){
printf("starting now:\n");
one_three();
printf("done\n");
return 0;
}
int one_three(void){
printf("one\n");
two();//定义函数中调用定义函数,
// 这里调用了函数two(),
// two(),return后,还是回溯到one_three()中,即这里的主调函数就是one_three()
printf("three\n");
return 0;
}
int two(void){
printf("two\n");
return 0;
}

A2

return 0的用途:用来告知程序的结束。return 0 告诉程序正常结束。

return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。(这里我们在A1中说明了) return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。(以上代码就是该情况)

//作者:CCCPKeay

//时间:2021.10.19

C语言的return语句的更多相关文章

  1. javascript 核心语言笔记 5 - 语句

    表达式在 JavaScript 中是短语(phrases),那么语句(statements)就是 JavaScript 整句或命令,语句以分号结束.表达式计算出一个值,语句用来执行以使某件事情发生 表 ...

  2. 有return语句情况下,try-catch-finally的执行顺序

    重要结论: 1.不管有没有出现异常,finally块中代码都会执行 2.当try和catch中有return时,finally仍然会执行 3.finally是在return后面的表达式运算后执行的(此 ...

  3. C语言第五讲,语句 顺序循环选择.

    C语言第五讲,语句 顺序循环选择. 一丶语句的简明了解 我们知道,在编写C语言程序的时候,代码是顺序执行的. 从上往下执行. 但是我们可以控制流程的. 在控制之前,我们要先熟悉什么是语句. 相比大家学 ...

  4. 函数----基础,参数传递,返回类型和return语句

    一.函数基础1.形参和实参 实参是形参的初始值.第一个实参初始化第一个形参,第二个实参初始化第二个形参,以此类推.尽管实参与形参存在对应关系,但是并没有规定实参的求值顺序.编译器能以任意可行的顺序对实 ...

  5. C#6.0语言规范(八) 语句

    C#提供了各种语句.大多数这些语句对于使用C和C ++编程的开发人员来说都很熟悉. statement : labeled_statement | declaration_statement | em ...

  6. Swift5 语言参考(五) 语句

    在Swift中,有三种语句:简单语句,编译器控制语句和控制流语句.简单语句是最常见的,由表达式或声明组成.编译器控制语句允许程序更改编译器行为的各个方面,并包括条件编译块和行控制语句. 控制流语句用于 ...

  7. PHP:第二章——PHP中的break一continue一return语句

    知识点一:break语句     break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行.     break 可以接受一个可选的数字参数来决定跳出 ...

  8. python基础----函数的定义和调用、return语句、变量作用域、传参、函数嵌套、函数对象、闭包、递归函数

    1.函数的定义: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...

  9. C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质

    事情的经过是这种,博主在用C写一个简单的业务时使用递归,因为粗心而忘了写return.结果发现返回的结果依旧是正确的.经过半小时的反汇编调试.证明了我的猜想,如今在博客里分享.也是对C语言编译原理的一 ...

随机推荐

  1. .NET 5 支持 Azure Functions OpenAPI 扩展啦

    今年5月,在 Build大会上,Azure FunctionsOpenAPI的功能支持(预览版)正式宣布. 当时,它最高支持 v3 运行时--.NET Core 3.1 版本. 最近,它发布了 .NE ...

  2. Kafka内外网访问

    本文介绍了Kafka内外网访问的设置. kafka的两个配置listeners和advertised.listeners listeners kafka监听的网卡的ip,假设你机器上有两张网卡,内网1 ...

  3. ELK学习之Logstash篇

    Logstash在ELK这一整套解决方案中作为数据采集终端,支持对接Kafka.数据库(MySQL.Oracle).文件等等. 而在Logstash内部的数据流转,主要经过三个环节:input -&g ...

  4. Spring Cloud Apollo 实践

    接上一篇Windows下安装Apollo的常见问题,安装完毕后试着看怎么来使用一下. 首先到管理页面创建一个新的应用: 创建成功后会自动跳转到应用的维护界面,如下图所示: 新增一个配置信息来进行后续的 ...

  5. Golang入门学习(四):常用的函数汇总

    文章目录 2.4 常用的内置函数 2.4.1 字符串常用内置函数 2.4.2 常用的时间和日期相关函数 2.4.3 内置函数 2.4 常用的内置函数 2.4.1 字符串常用内置函数 https://g ...

  6. 虚拟机使用scp传输文件提示“WARNING REMOTE HOST IDENTIFICATION HAS CHANGED”解决方式

    虚拟机使用scp传输文件提示"WARNING REMOTE HOST IDENTIFICATION HAS CHANGED"解决方式 简单的说就是虚拟机里保存的认证密钥不正确了,需 ...

  7. node.js一头雾水

    开始学习node.js,一头雾水,谁可以告诉我怎么学......欢迎评论留言怎么学node.js的,谢谢 node,node,node,给自己加油 放一张自己设计的日历图鼓励一下:):):),加油.. ...

  8. 密码学系列之:海绵函数sponge function

    目录 简介 海绵函数的结构 海绵函数的应用 简介 海绵函数sponge function是密码学中使用的一种函数,它接收一定长度的输入,然后输出一定长度的输出,中间包含了有限个内部状态. 因为海绵函数 ...

  9. 硕盟type-c转接头HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞

    硕盟SM-T54是一款 TYPE C转HDMI+VGA+USB3.0+PD3.0四合一多功能扩展坞,支持四口同时使用,您可以将含有USB 3.1协议的电脑主机,通过此产品连接到具有HDMI或VGA的显 ...

  10. MSSQL2008 无法分配空间,因为PRIMARY文件组已满

    1.收缩数据库日志 https://jingyan.baidu.com/article/1709ad808a279f4635c4f060.html 完整代码: --查看数据库的存放位置-- selec ...