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语言编译原理的一 ...
随机推荐
- configparser读
#-*-coding:utf-8-*-__author__ = "logan.xu"import configparserconf = configparser.ConfigPar ...
- 紫色飞猪的研发之旅--06go自定义状态码
在实际开发中,需要前后端需要协商状态码,状态码用于后端返前端时使用.在一个团队中,定义的状态码讲道理应该是一致的,项目开始的起始阶段状态码应该是定义了个七七八八的,随着功能的叠加而不断增加.此系列将围 ...
- MySQL(四)——
MySQL官方对索引的定义:索引(Index)是帮助MySQL高效获取数据的数据结构.因此索引的本质就是数据结构.索引的目的在于提高查询效率,可类比字典.书籍的目录等这种形式. 可简单理解为" ...
- Linux的LCD驱动分析及移植
测试平台 宿主机平台:Ubuntu 12.04.4 LTS 目标机:Easy-ARM IMX283 目标机内核:Linux 2.6.35.3 LCD驱动分析 LCD屏的驱动总体上分成两块,一块是GUI ...
- Linux - 设置帮助文件为中文
前言 当我们执行某个命令的 --h 或者 --help 时,默认输出的都是英文,接下来我们来说下如何将所有帮助文件显示成中文哦! 设置系统默认语言为中文 对应每个shell而言,重启后会变成英文,所 ...
- PyCharm--帮助文档
PyCharm官方文档翻译 PyCharm快捷键
- Java反序列化漏洞Apache CommonsCollections分析
Java反序列化漏洞Apache CommonsCollections分析 cc链,既为Commons-Collections利用链.此篇文章为cc链的第一条链CC1.而CC1目前用的比较多的有两条链 ...
- 在树莓派用C#+Winform实现传感器监测
最近学校里发了个任务,说要做一个科技节小发明,然后我就掏出我的树莓派准备大干一场. 调料 Raspberry Pi 3B+ 树莓派GPIO扩展板 3.5寸电容触摸屏(GPIO接口) 土壤湿度传感器(G ...
- Django学习day12随堂笔记
每日测验 """ 1.什么是cookie和session,你能描述一下它们的由来和工作机制吗(切勿糊弄,敷衍了事) 2.django中如何操作cookie和session ...
- CDI Features inJavaEE 的上下文和依赖注入
基本的CDI的功能: 类型安全:CDI使用Java类型来解析注入,而不是通过(字符串)名称注入对象.当类型不足时, 可以使用限定符 注释.这允许编译器轻松检测错误,并提供简单的重构. POJO:几乎每 ...