C语言的return语句
Q1:函数中的Return语句有什么用?
Q2:Return 0有什么含义吗?
A1:Return的作用为,跳出当前的函数,并且返回到调用当前函数的主调函数,当前函数中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语句的更多相关文章
- javascript 核心语言笔记 5 - 语句
表达式在 JavaScript 中是短语(phrases),那么语句(statements)就是 JavaScript 整句或命令,语句以分号结束.表达式计算出一个值,语句用来执行以使某件事情发生 表 ...
- 有return语句情况下,try-catch-finally的执行顺序
重要结论: 1.不管有没有出现异常,finally块中代码都会执行 2.当try和catch中有return时,finally仍然会执行 3.finally是在return后面的表达式运算后执行的(此 ...
- C语言第五讲,语句 顺序循环选择.
C语言第五讲,语句 顺序循环选择. 一丶语句的简明了解 我们知道,在编写C语言程序的时候,代码是顺序执行的. 从上往下执行. 但是我们可以控制流程的. 在控制之前,我们要先熟悉什么是语句. 相比大家学 ...
- 函数----基础,参数传递,返回类型和return语句
一.函数基础1.形参和实参 实参是形参的初始值.第一个实参初始化第一个形参,第二个实参初始化第二个形参,以此类推.尽管实参与形参存在对应关系,但是并没有规定实参的求值顺序.编译器能以任意可行的顺序对实 ...
- C#6.0语言规范(八) 语句
C#提供了各种语句.大多数这些语句对于使用C和C ++编程的开发人员来说都很熟悉. statement : labeled_statement | declaration_statement | em ...
- Swift5 语言参考(五) 语句
在Swift中,有三种语句:简单语句,编译器控制语句和控制流语句.简单语句是最常见的,由表达式或声明组成.编译器控制语句允许程序更改编译器行为的各个方面,并包括条件编译块和行控制语句. 控制流语句用于 ...
- PHP:第二章——PHP中的break一continue一return语句
知识点一:break语句 break 结束当前 for,foreach,while,do-while 或者 switch 结构的执行. break 可以接受一个可选的数字参数来决定跳出 ...
- python基础----函数的定义和调用、return语句、变量作用域、传参、函数嵌套、函数对象、闭包、递归函数
1.函数的定义: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可 ...
- C语言中递归什么时候能够省略return引发的思考:通过内联汇编解读C语言函数return的本质
事情的经过是这种,博主在用C写一个简单的业务时使用递归,因为粗心而忘了写return.结果发现返回的结果依旧是正确的.经过半小时的反汇编调试.证明了我的猜想,如今在博客里分享.也是对C语言编译原理的一 ...
随机推荐
- java发送短信开发,第三方接口方法
必备的三个jar包Maven有自己去下: commons-logging commons-logging 1.1 commons-httpclient commons-httpclient 3.1 c ...
- 新东方APP技术团队建设
作者:张建鑫, 曾任IBM高级软件架构师, 滴滴高级技术专家, 现任新东方集团高级技术总监 2019年注定是不平凡的一年,在俞敏洪老师对科技条线的密切关注下, 吴强老师亲自操盘了对产品技术条线的改革, ...
- Sentry Web 性能监控 - Metrics
系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...
- Jenkins(6)- 新建用户
如果想从头学起Jenkins的话,可以看看这一系列的文章哦 https://www.cnblogs.com/poloyy/category/1645399.html 进入用户管理 点击新建用户 填写新 ...
- docker一分钟搭建nginx服务器
运行nginx服务 拉取: docker pull nginx:1.17.9 运行: docker run -d --name nginx -P 80:80 nginx:1.17.9 -d表示在后台启 ...
- 数据导出生成Excel附件使用POI的HSSFWorkbook对象
比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel.Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组 ...
- freeswitch编译安装依赖
ncurses:提供字符界面 zlib:数据压缩 libjpeg:JPEG图片格式数据的解码/编码/其他. lua:lua解释器 libedit:一种编辑操作的库,对一些可以交互操作的场景,或转为了自 ...
- AS插件快速生成javabean
https://blog.csdn.net/u010227042/article/details/103803198
- PHP的那些魔术方法(二)
上文中介绍了非常常用并且也是面试时的热门魔术方法,而这篇文章中的所介绍的或许并不是那么常用,但绝对是加分项.当你能准确地说出这些方法及作用的时候,相信对方更能对你刮目相看. __sleep()与__w ...
- PHP中的MySQLi扩展学习(四)mysqli的事务与预处理语句
对于 MySQLi 来说,事务和预处理语句当然是它之所以能够淘汰 MySQL(原始) 扩展的资本.我们之前也已经学习过了 PDO 中关于事务和预处理语句相关的内容.所以在这里,我们就不再多讲理论方面的 ...